我正在编写 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/