我创建了一个在 Windows 中搜索用户桌面文件夹的批处理文件。
for /F "skip=2 tokens=3* delims= " %%a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do set DESKTOP=%%a
如果我的桌面文件夹不在C:\Users\User\Desktop
,它将工作并返回正确的文件夹,例如在我的情况下E:\User\Desktop
。如果桌面文件夹位于 中C:\Users\User\Desktop
,则上面的脚本将生成%USERPROFILE%\Desktop
. 稍后在脚本中,我尝试在桌面上创建一个新文件。在第一个选项中它会起作用,因为它E:\User\Desktop
是一个真实的目录。在第二个中它不会,因为显然%USERPROFILE%\Desktop
不算作目录。
echo start javaw -jar "path/to/program.jar" >"%DESKTOP%\Start program.bat"
如何让它在两种情况下都起作用?
正在做
if /I "%DESKTOP%" EQU "%USERPROFILE%\Desktop"
没有帮助,因为它与
if /I "%DESKTOP%" EQU "C:\Users\User\Desktop"