我有一些代碼,我想用FOR
循環來處理一組文件。 作爲處理文件的一部分,有一個FOR /F
循環讀取它並根據文件名將數據追加到其他文件。如何在批處理文件中使用嵌套FOR循環
爲了能夠設置輸出文件名,我設置了延遲變量擴展集。
這是代碼應該是什麼樣子,因爲我原本打算它是:
setlocal enabledelayedexpansion
for %%f in (DataFolder\*.Ext) do (
set POI=%%~f
set POI=!JbPOI:DataFolder\=!
set POI=!JbPOI:.Ext=!
for /f "tokens=1,2,3 delims=," %%a in ("%%~f") do (
set CX=%%a
set CY=%%b
set FN=%%c
echo !FN!,9,!CX!,!CY! >> "DataFolder\!POI!.tmp"
)
)
endlocal
此代碼不起作用,因爲變量%%a
,%%b
和%%c
永遠不會收到一個值,%%a
總是有與%%f
的值相同。
我已閱讀了一些關於此問題的文章,但無法從他們的工作中提取解決方案。
我已經試過幾件事,沒有到目前爲止工作...
- 添加一個虛擬外環創建變量
%%a
通過%%j
明確 - 內
FOR
取出循環,並使它成爲子程序 - 內部
FOR
環取出並使其成爲一個單獨的批處理文件
任何人都可以請te讓我知道這可以 - 或必須 - 解決?
我想說最簡單的解決方案是安裝Python併爲它編寫一個小Python腳本。或者除了MS批處理之外還有其他任何語言 – ThiefMaster 2014-11-23 15:45:09
是否要讀取文件'%%〜f'的內容或將其名稱用作字符串。因爲現在您將它用作字符串。 – npocmaka 2014-11-23 15:54:52
文件%% f將被讀取......如果以這種方式將它視爲字符串:這有意義地解釋了爲什麼%% a始終與%% f具有相同的值。我將要做更多的測試... – 2014-11-23 19:05:59