我有一个用于比较2个.csv文件的exe。当我打开cmd窗口,拖动exe,键入空格,拖动第一个csv文件,键入空格,然后拖动第二个文件时,它就可以工作。
现在我想自动化它,问题是它永远不会在同一个地方,也不会使用相同的文件进行比较......
到目前为止我得到的是批量跟进:
%~dp0\Komparator.exe BC101.csv BC102.csv
pause
这两个csv文件将位于同一个文件夹中,旁边是.exe和.bat文件...但是“相同文件夹”并不总是相同,今天它的一个位置,另一天是另一个文件夹
但我不知道如何为文件名自动化这两个参数,我只是想让它识别.exe和.bat附近的两个.csv文件
提前致谢!
答案 0 :(得分:1)
您可以使用for
周期读取csv文件名并将其存储到批处理变量中。
这是一个示例,假设您的csv文件与批处理文件位于同一目录中。
<强> compare.cmd 强>
@echo off
set FILE1=
set FILE2=
for /f "delims=" %%a in ('dir /b %~dp0*.csv 2^>nul ^| sort') do (
if defined FILE1 set "FILE2=%%~a" & goto :exit_loop
set "FILE1=%%~a"
)
:exit_loop
if not defined FILE1 echo first csv file not found!& goto :eof
if not defined FILE2 echo second csv file not found!& goto :eof
%~dp0\Komparator.exe "%~dp0%FILE1%" "%~dp0%FILE2%"