我創建了一個批處理文件,用於在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"
+1;當我被要求爲家人做早餐時,我會提供這個答案的擴展版本。大聲笑 – dbenham