【发布时间】:2021-07-27 23:43:13
【问题描述】:
我在共享网络驱动器上有一个包含大量文本文件的文件夹。我需要列出每个文件中的文件名、大小和行数/行数。我可以使用命令提示符单独获取输出,但似乎无法合并。
这非常适合列出文件名和大小:
DIR /s “files location*.txt” > Directory.txt
这适用于行数:
for %f in ("files location*.txt" ) do find /v /c "" "%f"
我尝试了以下组合,但输出为空,命令提示符窗口显示完整的文件位置和名称,但没有行数
DIR /s “files location*.txt” | for %f in (“files location*.txt”) do find /v /c "" "%f" > Directory.txt
【问题讨论】:
-
(dir /S "files location*.txt" & for %f in ("files location*.txt") do find /V /C "" "%~f") > "Directory.txt"?管道|在这里是错误的,因为它将一个命令的输出传递到另一个命令的输入。你真的想要dir /S而不是for /R? N. B.: 我希望您的代码中使用直引号而不是印刷引号…… -
我试过了(对于 /R “文件位置” %g IN (.txt) 输入“%g”)|也找到 /c /v "" 但什么也没发生。我也试过 set file= files location *.txt set /a cnt=0 ( For /r do ( for /r "files location *.txt" %a in ('type "%f"^|find /C /v "" ') do set /a cnt=%%a echo %file% has %cnt% lines) )>>list.txt GOTO :EOF 我收到一个错误,文件位置未被识别为内部或外部命令。文件位置.txt 包含在引号中,因为文件路径包含空格。
标签: cmd