Filter 批处理脚本,用于筛选文件夹中的数百个csv文件,并将数据提取到单个工作表中

Filter 批处理脚本,用于筛选文件夹中的数百个csv文件,并将数据提取到单个工作表中,filter,Filter,我正在寻求有关创建批处理脚本的帮助,该脚本: 要求输入行(可能是几个单词,可能包括通配符,可能只是一个关键字) 浏览文件夹中的所有csv/xls文件 提取找到该输入行的行 将结果放入新工作簿 请帮忙就好了 如果文件也有注释,我会喜欢的,这样我就可以学习 提前谢谢你@Echo OFF @Echo OFF @IF "%_Echo%" NEQ "" Echo %_Echo% Echo xls file filter - select lines ending with the requested ex

我正在寻求有关创建批处理脚本的帮助,该脚本:

要求输入行(可能是几个单词,可能包括通配符,可能只是一个关键字) 浏览文件夹中的所有csv/xls文件 提取找到该输入行的行 将结果放入新工作簿

请帮忙就好了

如果文件也有注释,我会喜欢的,这样我就可以学习

提前谢谢你

@Echo OFF
@Echo OFF
@IF "%_Echo%" NEQ "" Echo %_Echo%
Echo xls file filter - select lines ending with the requested extension type
Echo v1.1
If "%1" NEQ "" goto -Process
Echo.
Echo Parameters
Echo  1 - Extension to search for
Echo.
Echo .csv Files in C:\Users\test\Desktop\output will be scanned for the input
Echo All matching extensions found in folder C:\Users\test\Desktop\output\*.csv
Echo   Where ********* is the filteryou entered.
Echo.
Pause
Set /p _b= "Enter Extension "
if "%_b%" NEQ "" goto -Process2
Goto :EOF

:-Process
Set _b=%1
:-Process2 
Set _Src="C:\Users\test\Desktop\output"
Echo Source %_Src%  Files 20yy-mm-dd.csv
Set _TFN="C:\Users\test\Desktop\Files\%_b%.csv"
Echo Filtered File: %_TFN%
set _HDR=
set _cnt=0
Pushd %_src%
::dir /b "C:\Users\test\Desktop\output\*.csv"
FOR /F "usebackq tokens=1,2*" %%a IN (`dir /b "C:\Users\test\Desktop\output\**********.csv"`) DO Call :-FilterFl %%a
Echo %_cnt% Files processed
popd
pause
Goto :EOF


:-FilterFl
::Echo 1-%1 2-%2
if not exist %1 goto :-NF
if "%_HDR%" NEQ "Done" call :-DoHdr %1
Echo Processing %1
FIND /i "%_b%"<%1 >>%_TFN%
set /a _cnt=_cnt + 1
Goto :EOF
:-NF
Echo %1 is not found
goto :EOF


:-DoHdr
if "%_Debug%" NEQ "" Echo -DoHdr %1
FIND "---," <%1 >%_TFN%
set _HDR=Done
goto :EOF
@如果“%\u Echo%”NEQ“Echo%\u Echo% Echo xls文件筛选器-选择以请求的扩展名类型结尾的行 Echo v1.1 如果“%1”NEQ“转到-进程 回声。 回波参数 Echo 1-要搜索的扩展名 回声。 将扫描C:\Users\test\Desktop\output中的Echo.csv文件以获取输入 回显在文件夹C:\Users\test\Desktop\output\*.csv中找到的所有匹配扩展名 回声,其中*******是您输入的过滤器。 回声。 暂停 设置/p\u b=“输入扩展” 如果“%\u b%”NEQ“”转到-Process2 后藤:EOF :-过程 设置_b=%1 :-Process2 Set\u Src=“C:\Users\test\Desktop\output” 回波源%\u Src%文件20yy-mm-dd.csv Set\u TFN=“C:\Users\test\Desktop\Files\%\u b%.csv” 回显筛选文件:%\u TFN% 设置= 设置_cnt=0 Pushd%\u src% ::dir/b“C:\Users\test\Desktop\output\*.csv” 对于(`dir/b“C:\Users\test\Desktop\output\***********.csv”`)中的/F“usebackq tokens=1,2*”%%a,请调用:-FilterFl%%a 已处理的Echo%\u cnt%文件 邻苯二胺 暂停 后藤:EOF :-过滤器 ::回显1-%12-%2 如果不存在%1转到:-NF 如果“%\u HDR%”NEQ“完成”调用:-DoHdr%1 回显处理%1 查找/i“%\u b%”>%\u TFN% 设置/a\u cnt=\u cnt+1 后藤:EOF :-NF 找不到回显%1 后藤:EOF :-DoHdr 如果“%\u Debug%”“NEQ”Echo-DoHdr%1 查找“--,”%\u TFN% 设置_HDR=Done 后藤:EOF
这不是一个免费的脚本下载站点。试试你自己,如果你失败了,来这里问问你在哪里遇到了问题。你好,抱歉,我会上传我今晚已经做过的事情。我已经回答了我自己的问题,但不确定是否有更好的方法?@Volkan Ulukut你能看一下我的代码吗