0
我需要將目錄樹中的所有文件複製到單個目錄中。快速搜索爲我提供了this方法:使用批處理文件將目錄樹中的所有文件複製到單個目錄
for /f "tokens=*" %a in ('dir /b /s /a-d') do @copy "%a" "c:\Single-Folder"
我試過了,它工作得很好。決定簡化一下,我創建了一個快速批處理文件,所以我不用在將來查看這個文件。我的批處理文件看起來像這樣:
set COPY_FROM="C:\Users\me\Desktop\Disc 1"
set COPY_TO="C:\Testing\test"
cd %COPY_FROM%
for /f "tokens=*" %a in ('dir /b /s /a-d') do @copy %COPY_TO%
pause
不幸的是,當我執行這一點,我得到的錯誤:
C:\Users\me\Desktop\Tools>set COPY_FROM="C:\Users\me\Desktop\Disc 1"
C:\Users\me\Desktop\Tools>set COPY_TO="C:\Testing\test"
"\Users\me\Desktop\Disc 1"') was unexpected at this time.
C:\Users\me\Desktop\Tools>for /f "tokens=*" "\Users\me\Desktop\Disc 1"') do @copy "\Testing\test"
,如果我進入它什麼工作進入命令行模式時,作爲運行不工作批處理文件。我嘗試用實際路徑替換變量,但得到相同的錯誤。即使我只用命令行中的行創建批處理文件,從文件運行時也不起作用。有誰知道我做錯了什麼?
非常感謝您的幫助。
set命令中的引號應該只圍繞值而不是變量名稱。 –
謝謝,這有效果。所以,在批處理文件中,我需要用%來轉義%並添加「do」? – Tim
還有一些引用,'/ d'和'delims ='的其他細節,但基本上你已經在copy命令中省略了源代碼,並且在批處理文件中使用'for'變量時需要兩個百分點。 – foxidrive