Windows批处理中的桌面文件夹是否有捷径?

use*_*729 5 batch-file

C:\Documents and Settings\Administrator\Desktop
Run Code Online (Sandbox Code Playgroud)

我不想每次都输入上面的内容来引用桌面上的文件

Sha*_*men 8

您可以使用,"%USERPROFILE%\Desktop"但我不知道它内置的是哪个版本的Windows.

如果您想要桌面所在的真实文件夹,请在bach中使用此代码

for/F"skip = 2 tokens = 3*delims ="%% a in('reg query"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"/ v Desktop')设置DesktopFolder ="% %一个"

这需要reg.exe可用(再次,我不知道它在哪个版本的Window),它会将DesktopFolder变量设置为桌面的路径.

  • `%USERPROFILE%`已在XP上可用(也可能更早). (3认同)
  • 请注意,这对于"Desktop"文件夹具有其他名称的本地化Windows版本不起作用. (2认同)
  • @ user198729:没有直接的环境变量...这是.bat/.cmd的限制.其他脚本选项(适用于VBS和JS的PowerShell和Windows Scripting Host)为具有更多详细信息上下文的对象/属性提供了更丰富的环境. (2认同)

jeb*_*jeb 6

Anders的混合可以更简单和可读,这里描述的方法是由Tom Lavedas 编写混合脚本.

@if (@X)==(@Y) @goto :Dummy @end/* Batch part

@echo off
SETLOCAL ENABLEEXTENSIONS
for /f "delims=" %%x in ('cscript //E:JScript //nologo "%~f0"') do set desk=%%x
echo desktop path is %desk%
goto :EOF

***** Now JScript begins *****/
WScript.Echo(WScript.CreateObject("Shell.Application").Namespace(16).Self.Path);
Run Code Online (Sandbox Code Playgroud)

  • `WScript.Echo(WScript.CreateObject("WScript.Shell").SpecialFolders("Desktop"));`更短,看起来更易读 (2认同)