批处理脚本,用于过滤文件夹中的数百个CSV文件,并将数据提取到单个工作表



我正在寻找创建批处理脚本的帮助:

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

请帮忙就太好了,

希望文件也有注释,这样我就可以学习

提前感谢

@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:UserstestDesktopoutput will be scanned for the input
Echo All matching extensions found in folder C:UserstestDesktopoutput*.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:UserstestDesktopoutput"
Echo Source %_Src%  Files 20yy-mm-dd.csv
Set _TFN="C:UserstestDesktopFiles%_b%.csv"
Echo Filtered File: %_TFN%
set _HDR=
set _cnt=0
Pushd %_src%
::dir /b "C:UserstestDesktopoutput*.csv"
FOR /F "usebackq tokens=1,2*" %%a IN (`dir /b "C:UserstestDesktopoutput**********.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

最新更新