windows - 从列表中读取文件名,找到它的计数并将文件名和计数重定向到 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)
解决方案
根据您的评论,这似乎是您想要的。
@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
)
)
)
)
推荐阅读
- json - 导航 JSON 路径
- c++ - 修改 Bellman-Ford 算法以维护基于成本的有序列表
- jquery - 如何使用 Ajax Api 修复 Google 距离矩阵 API 中的“跨源请求被阻止”
- sails.js - 根据后端 api 的 ui 输入,使用 Sails 应用程序版本 0.12 连接到动态 postgresql 数据库主机
- scala - NoSuchMethodError ArrayOps 试图运行基本的 Spark 作业
- c++ - 在一些范围更新后获得整数数组最终状态的有效算法是什么?
- android - The process "...androiddeployqt.exe" exited with code 14
- java - 在 Abstract 类中编写 equals 方法
- laravel - SQLSTATE [42S22]:未找到列:1054 'where 子句'中的未知列 'name'(SQL:select * from `roles` where `name` = user limit 1)
- c# - 如何使用 LINQ 从关系数据库中获取对象?