我有一個文本文件(users.txt)中的用戶列表,我希望爲每個用戶複製其目錄中的每個文件(c:\ Folder \ 用戶名)和子目錄中的另一個目錄沒有子目錄(c:\ Folder 2 \ 用戶名)。Windows批處理文件 - 嵌套FOR循環中的變量
我現在用含有這樣的批處理文件:
for /f %%u in (user.txt) do (
for /r "C:\Folder\%%u" %%f in (*.*) do @xcopy "%%f" "C:\Folder 2\%%u"
)
...但不工作。
一些測試後,我能找出什麼是錯的:第一%%ü在第二個變量
for /r "C:\Folder\%%u" %%f in (*.*) do @xcopy "%%f" "C:\Folder 2\%%u"
不正確地用戶名取代。
取而代之的是第二個%% u(在DO命令中)正確地被它的值替換。
有沒有辦法強制第一個%% u變量採取正確的值?
遞歸條款中刪除第一
for
替換參數,你會如何處理文件名衝突,如果存在兩個文件具有相同名稱在不同的文件夾? – foxidrive 2014-10-09 05:50:54FOR/F帶引號的選項不能使用FOR變量或延遲擴展。它與各種分析階段發生的順序有關。 – dbenham 2014-10-09 11:50:45
@foxidrive不應該有碰撞(至少我現在正在做什麼),所以我沒有考慮如何處理它。無論如何,如果我需要這樣做,我認爲最好的辦法是將文件路徑轉換爲名稱。 – ChemClaude 2014-10-15 19:56:09