我想寫一個Windows批處理文件腳本,它將循環遍歷文件路徑的文本文件,使用每個文件路徑的數據做一些工作,然後最終刪除文件。For循環在批處理文件中讀取文件路徑的文件
我開始運行FORFILES命令,併發送其輸出(的@ PATH參數是它匹配任何文件的完整路徑),文本文件(RESULTS.TXT)。
我結束了一個RESULTS.TXT文件是這樣的:
"C:/Windows/Dir1/fileA.log"
"C:/Windows/Dir1/fileA.log"
"C:/Windows/Dir2/fileC.log"
"C:/Windows/Dir3/fileB.log"
我想要做的是:
- 使用for循環並閱讀RESULTS.TXT文件中的每一行
- 對於每一行(文件路徑),去掉日誌文件所在的目錄名稱(即:Dir1,Dir2等),並在不同位置創建一個具有該SAME名稱的目錄(即.D :/ Archive/Backups/Dir1,D:/ Archive/Backups/Dir2等。) - 假設目錄doe不存在。
- 將實際的.log文件移動到該目錄中的zip文件[我有代碼執行此操作]。
- 從原始位置刪除.log文件。 [很簡單]
我很難搞清楚完成前兩步的最佳方法。我的循環似乎讀的第一行後停止:
FOR /F "tokens=1,2,3,4,5,6,7,8,9,10 delims=\" %%G in ("results.txt") DO (
...
)
但沒有任何修飾的給予最後的目錄路徑......在這個例子中,在d目錄:比一個位於C不同: – Aacini
@Aacini - 啊,我沒看過問題足夠小心。我會再試一次 – dbenham
謝謝@dbenham。只是一個小小的更正 - 設置myPath行不需要雙引號。 results.txt也沒有。我不確定它是否會使results.txt無效,但絕對是myPath。通過這些更正,我可以得到任何新的dirs,並且壓縮應該非常簡單。 – tresstylez