通常你可以指定這樣的變量:%USERPROFILE%\Downloads
評估搬遷外殼文件夾的位置與一批
但是,如果你移動的下載文件夾到另一個位置,這是行不通的:
作爲獨立變量的%Downloads%
不起作用。這個文件夾的正確變量是什麼,所以我可以在批處理中指定它,並在不同系統上使用批處理而不修改它?
通常你可以指定這樣的變量:%USERPROFILE%\Downloads
評估搬遷外殼文件夾的位置與一批
但是,如果你移動的下載文件夾到另一個位置,這是行不通的:
作爲獨立變量的%Downloads%
不起作用。這個文件夾的正確變量是什麼,所以我可以在批處理中指定它,並在不同系統上使用批處理而不修改它?
Windows必須將新的重定位文件夾存儲在某處。
這個地方是註冊表,下面的批次將讀取包含新位置的註冊表值。
Reference
我只是用虛擬機做了一個測試來驗證這一點。
@Echo off&SetLocal EnableExtensions
Set "Key=HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
Set "Val={374DE290-123F-4565-9164-39C4925E467B}"
For /F "Tokens=2*" %%A in (
'Reg Query "%Key%" /v "%Val%" 2^>Nul ^| Find "%Val%" '
) Do Set "Downloads=%%B"
Echo 'Downloads' location: %Downloads%
因此,批次將創建您要求的變量%Downloads%
。
與下載的文件夾的示例輸出移動到C的根:
'Downloads' location: C:\Downloads
編輯:由於在Val空間My Music
,My Pictures
和My Video
這將解決這些變體
Set "Key=HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
Set "Val=My Video"
For /F "Tokens=3*" %%A in (
'Reg Query "%Key%" /v "%Val%" 2^>Nul ^| Find "%Val%" '
) Do Set "MyVideo=%%B"
Echo Possible 'My Video' location: %MyVideo%
Set "Key=HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
Set "Val=My Music"
For /F "Tokens=3*" %%A in (
'Reg Query "%Key%" /v "%Val%" 2^>Nul ^| Find "%Val%" '
) Do Set "MyMusic=%%B"
Echo Possible 'My Music' location: %MyMusic%
Set "Key=HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
Set "Val=My Pictures"
For /F "Tokens=3*" %%A in (
'Reg Query "%Key%" /v "%Val%" 2^>Nul ^| Find "%Val%" '
) Do Set "MyPictures=%%B"
Echo Possible 'My Pictures' location: %MyPictures%
不幸的是,沒有什麼像這個變量。
然而,這不應該阻止你做吧:)
在cmd中您可以使用setx
來設置環境變量:
setx DOWNLOADS "D:\Downloads"
你可以關注一下了「Environmentvariables」(或類似的東西)在控制面板中編輯它。
批處理必須在不同的系統上工作而不需要修改它... – Clacers
然後另一種選擇是運行所有驅動器,遞歸檢查目錄名稱「下載「,並希望您獲取正確的一個。但是沒有下載變量這樣的事情,我很抱歉。 – geisterfurz007
是否可以全局設置變量,以便所有其他批處理文件都可以引用'%Downloads%'? – Clacers
你**可以用setx永久設置它,但它不能反映實際值,所以最好包含上面的行。 – LotPings
如何爲視頻文件夾執行相同的操作? 'HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Folders'說'D:\ Videos'的值是'My Video',但是這個變量不起作用。所以我用'我的視頻'和'設置'下載= %% B「'替換'{374DE290-123F-4565-9164-39C4925E467B}''設置'視頻= %% B」'但它不起作用。語法錯誤。 – Clacers