我有一個簡單的.txt文件(myfile.txt)包含在同一目錄中的300多個文件的名稱。每一行包含一個文件的名稱,每個文件名中有空格 - 是這樣的:批量讀取文件名作爲變量,然後在另一批處理中使用變量
file number one.txt
file number two.txt
file number three.txt
....
file number three hundred and twenty five.txt
我想批量處理,而不在我的主要批處理腳本(process.bat)硬編碼的每個文件名的每個文件。
我的process.bat只是打開並使用命令行應用程序處理文件(當前硬編碼),然後將處理後的文件保存到不同的目錄,但保留原始文件名。
@echo off
setlocal enableextensions disabledelayedexpansionstart
start prooftool -c "file number one.txt" "/processed/file number one.txt"
不知何故,我需要從myfile.txt的動態替換「文件編號此時就把one.txt存盤」與變量(即文件名),然後將處理後的數據寫入到命名完全一樣的原始一個新的文件文件,但在名爲「已處理」的文件夾中。
來讀取mytext.txt文件名我想:
for /F "tokens=*" %%A in (myfile.txt) do [process.bat] %%A
但process.bat有沒有要處理。
我已經看了如何從文本文件讀取行到變量,我想也許在文件名稱中的空間導致問題!?我不明白變量的存儲位置(我假設在內存中?),我怎麼調用一個變量來處理我的process.bat腳本(文件名是當前硬編碼),然後如何調用下一個變量等,以便循環並處理目錄中的所有文件。
感謝您的時間和耐心!
謝謝。我嘗試過,但沒有運氣。我已經擴大了我的描述有點包括process.bat – aperr
這process.bat近工作 關閉@echo SETLOCAL disableDelayedExpansion FOR/F 「令牌= *」 %% A有(myfile.txt中)做開始「」prooftool -c「%% A」「C:\ Users \ Per \ Desktop \ batch \ processed \ %% A。txt「 但是隻處理和保存了前幾個文件,我認爲這是因爲它難以跟上將處理過的文件寫入磁盤 - 除了將myfile.txt分成更小列表? 除了正確處理的文件,我得到了一些0kb的文件保存,它打開很多cmd窗口,但它似乎鎖定,我必須重新啓動 – aperr
我認爲閱讀和寫入同一驅動器是瓶頸。寫入另一個驅動器的目錄工作,它現在處理所有文件。非常感謝您的幫助Magoo! – aperr