windows - 桌面路径的环境变量是什么?

标签 windows powershell vbscript localization desktop

我正在编写 Windows 批处理文件并想将某些内容复制到桌面。我想我可以用这个:

%UserProfile%\Desktop\

但是,我在想,这可能只适用于英文操作系统。有没有一种方法可以在适用于任何国际化版本的批处理文件中执行此操作?

更新

我尝试了以下批处理文件:

REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop
FOR /F "usebackq tokens=3 skip=4" %%i in (`REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop`) DO SET DESKTOPDIR=%%i
FOR /F "usebackq delims=" %%i in (`ECHO %DESKTOPDIR%`) DO SET DESKTOPDIR=%%i
ECHO %DESKTOPDIR%

得到这个输出:

S:\>REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
    Desktop    REG_EXPAND_SZ    %USERPROFILE%\Desktop


S:\>FOR /F "usebackq tokens=3 skip=4" %i in (`REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folder
s" /v Desktop`) DO SET DESKTOPDIR=%i

S:\>FOR /F "usebackq delims=" %i in (`ECHO ECHO is on.`) DO SET DESKTOPDIR=%i

S:\>SET DESKTOPDIR=ECHO is on.

S:\>ECHO ECHO is on.
ECHO is on.

最佳答案

为了安全起见,您应该在 Powershell(或 VBScript)中使用正确的 API
使用 PowerShell:

[Environment]::GetFolderPath("Desktop")

使用 Powershell 复制一些东西:

Copy-Item $home\*.txt ([Environment]::GetFolderPath("Desktop"))

这是获取桌面路径的 VBScript 示例:

dim WSHShell, desktop, pathstring, objFSO
set objFSO=CreateObject("Scripting.FileSystemObject")
Set WSHshell = CreateObject("WScript.Shell")
desktop = WSHShell.SpecialFolders("Desktop")
pathstring = objFSO.GetAbsolutePathName(desktop)
WScript.Echo pathstring

关于windows - 桌面路径的环境变量是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2000638/

相关文章:

powershell - 复制一个单独的文件及其父文件夹/完整路径

powershell - Powershell SCCM客户端应用程序安装

vbscript - 带有 WSH 脚本的 GPS 元数据

vbscript - 是使用子类中的属性来访问父类更好,还是将父类公开更好?

windows - PowerShell如何处理路径中的 “.”?

windows - 为什么 LLVM JIT 生成的入口点在 64 位 Windows 下如此冗长?

windows - 服务器管理 - 需要脚本来监控服务器上的可用空间

vbscript - Internet Explorer 自动化繁忙与就绪状态属性

windows - 更改 solaris 网络超时

python.exe is not a valid win32 application 突然出现错误