从列表中读取文件名,找到其计数并将文件名重定向并计数到Windows cmd中的另一个文件

我是Windows脚本的初学者,发现很难实现以下方案。任何帮助将不胜感激。预先感谢

我有一个输入文件,带有文件名列表 例如:InputFileName.txt

E:\ABC\File*.csv
E:\ABC\CDF\list.txt

(即文件可以存在于任何目录中,并且文件名也不需要准确。它可以有通配符,因此需要选择匹配的文件)

步骤:

我需要获取InputFileName.txt中列出的每个文件的计数,然后将文件名,实际文件名及其计数写到列表中,而不是空白行(甚至表)之外的另一个文件。

输出应为

E:\ABC\File*.csv,E:\ABC\File20191008.csv,200
E:\ABC\CDF\list.txt,E:\ABC\CDF\list.txt,300

代码我刚刚将计数写入另一个文件。尝试了很多事情,但无法获得我需要的前2个字段。

代码:

For /F "tokens=*" %%A in ( 'type E:\dir1\InputFileName.txt) do (
findstr /R . %%A | find /c /v "" >>E:\dir1\OutputFileName.txt)
linnil22 回答:从列表中读取文件名,找到其计数并将文件名重定向并计数到Windows cmd中的另一个文件

根据您的评论,这似乎是您想要的。

@echo off
setlocal enabledelayedexpansion
for /F "delims=" %%a in ('type E:\dir1\InputFileName.txt') do (
 for /f "delims=" %%f in ('dir /b /s "%%a"') do (
    set "name=%%~nxf"
    if not "!oldname!"=="!name!" (
    set "oldname=!name!"
    for /f %%i in ('dir /b /s "%%~nxf" ^|find /c /v ""') do (
    echo %%a,%%~nxf,%%i >>E:\dir1\OutputFileName.txt
   )
  )
 )
)
本文链接:https://www.f2er.com/3140099.html

大家都在问