我有一個包含多個 csv 檔案的目錄。我想在視窗 10 上使用批次腳本返回每個文件的行數、每個文件的修改日期以及標題行後第一列中的字串。
例子
File 1: String 100 lines 1/12/2019
File 2: String 100 lines 1/10/2019
File 3: String 200 lines 1/12/2019
答案1
我不會為你製作腳本,但我會為你提供你想要的方法。首先我們把問題分成兩個部分:
1.- 取得 Dir 中的行數
for /f "usebackq tokens=1 delims=," %%a in ("you_file_path") do set /a count+=1
要在標題後面獲得第一行,您可以這樣做,但需要循環中斷
for /f "usebackq tokens=1 delims=," %%a in ("you_file_path") do (
set /a count+=1 && if count==2 (first_row=%%a && goto next)
)
:next
2.- 修改日期
for /f "tokens=1,2 delims= " %%a in (
'dir "FullDirPath" ^| find /i "File_name"'
) do set ArchDate=%%a
現在由您將其粘合在一起並製作腳本,您需要使用上面的程式碼循環每個文件,並在每個循環結束時echo "%first_row%" "%archdate%" "%count%"
或echo "%first_row%" "%archdate%" "%count%" > file.txt
您可以在中測試此方法,cmd
但要在終端上使用變量,您需要將 for 替換%%a
為%a
。在批次腳本上這%%a
是正確的語法,但在終端上%a
是正確的語法。
乾杯。