2017-07-27 8 views
0

通常你可以指定這樣的變量:%USERPROFILE%\Downloads評估搬遷外殼文件夾的位置與一批

但是,如果你移動的下載文件夾到另一個位置,這是行不通的:

Screenshot

作爲獨立變量的%Downloads%不起作用。這個文件夾的正確變量是什麼,所以我可以在批處理中指定它,並在不同系統上使用批處理而不修改它?

回答

3

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 MusicMy PicturesMy 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% 
+0

是否可以全局設置變量,以便所有其他批處理文件都可以引用'%Downloads%'? – Clacers

+0

你**可以用setx永久設置它,但它不能反映實際值,所以最好包含上面的行。 – LotPings

+0

如何爲視頻文件夾執行相同的操作? 'HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Folders'說'D:\ Videos'的值是'My Video',但是這個變量不起作用。所以我用'我的視頻'和'設置'下載= %% B「'替換'{374DE290-123F-4565-9164-39C4925E467B}''設置'視頻= %% B」'但它不起作用。語法錯誤。 – Clacers

0

不幸的是,沒有什麼像這個變量。

然而,這不應該阻止你做吧:)

在cmd中您可以使用setx來設置環境變量:

setx DOWNLOADS "D:\Downloads"

你可以關注一下了「Environmentvariables」(或類似的東西)在控制面板中編輯它。

+0

批處理必須在不同的系統上工作而不需要修改它... – Clacers

+1

然後另一種選擇是運行所有驅動器,遞歸檢查目錄名稱「下載「,並希望您獲取正確的一個。但是沒有下載變量這樣的事情,我很抱歉。 – geisterfurz007