我有一个包含多个 csv 文件的目录。我想使用 Windows 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
但要在终端上使用变量,您需要替换%%a
。%a
在批处理脚本上是%%a
正确的语法,但在终端上%a
是正确的语法。
干杯。