0
我有一個批處理腳本,它應該解析其中包含文件名和時間戳的文件。批處理腳本 - FOR/F中的無效語法
:MAIN
SETLOCAL EnableDelayedExpansion
FOR /F "tokens=1,2,4 skip=7" %%A in (C:\list_of_psa_files.txt) DO
@echo %%A %%B %%C
exit
文件C:\ list_of_psa_files.txt具有以下數據中它
Volume in drive C is Windows XP 6.6
Volume Serial Number is AC12-84AA
Directory of C:\Test
10/05/2011 03:17 PM <DIR> .
10/05/2011 03:17 PM <DIR> ..
10/05/2011 01:21 PM 4,393 1-16332-1008261.psa
10/05/2011 01:21 PM 4,863 1-16332-1011698.psa
10/05/2011 01:21 PM 4,793 1-16332-1023151.psa
10/05/2011 01:21 PM 4,916 1-16332-1035695.psa
10/05/2011 01:21 PM 4,524 1-16332-1037029.psa
10/05/2011 01:21 PM 4,235 1-16332-1049340.psa
10/05/2011 01:21 PM 3,135 1-16332-1049926.psa
10/05/2011 01:21 PM 4,657 1-16332-1054756.psa
然而,當我運行我的腳本,它與消息無效語法失敗。有人可以幫我弄清楚我哪裏錯了。
我所要做的就是獲取日期,時間和文件名,而不用將擴展名寫入我的舊文件中的新文件。
感謝您的時間 - 欣賞它。
桑德斯。
這是正確的!謝謝你Paxdiablo! – user982201
但是當我嘗試將我的輸出重定向到另一個文件時,我只是得到它的一行。像這樣 - 10/05/2011 01:10 24,971而且代碼爲SETLOCAL EnableDelayedExpansion :MAIN FOR/F「tokens = 1,2,4 skip = 5」%% A in(C:\ list_of_psa_files .txt)DO(@echo %% A %% B %% C> C:\ list_of_file_ts.txt) exit – user982201
這是一個_different_問題,@ user982201,但我會幫你解決的。你爲每一次迭代都做了'blah blah> out.txt'。換句話說,每次迭代_overwrites_文件意味着你只會得到最後一個。在'for'語句中做一個'del out.txt'清空它,然後使用'>>'而不是'>',以便每次迭代_appends_它的數據而不是覆蓋它。 – paxdiablo