我正在尝试比较具有相同名称但位于不同文件夹中的文件。我从bat.file调用我的diffTool.exe,并将文件名作为参数提供给此exe。
我的脚本是这样的:
@ECHO OFF
setlocal
set MYDIR="D:\Workspace\diffTool\Release"
set firstFolder=%MYDIR%\folder1
set secondFolder=%MYDIR%\folder2
for /r "%firstFolder%" %%F in (.) do (
echo %%F
for /r "%secondFolder%" %%G in (%%F) do (
call D:\Workspace\diffTool\Release\diffTool.exe %%F %%G
)
)
如何从字符串中获取文件名?如何将此文件名传递给第二个循环并使用这些文件名调用exe?
输出是这样的:
提前致谢。
答案 0 :(得分:0)
试试这个:
@ECHO OFF
setlocal
set "MYDIR=D:\Workspace\diffTool\Release"
set "firstFolder=%MYDIR%\folder1"
set "secondFolder=%MYDIR%\folder2"
for /r "%firstFolder%" %%F in (*) do (
for /r "%secondFolder%" %%G in (*) do (
call D:\Workspace\diffTool\Release\diffTool.exe "%%F" "%%G"
)
)
pause
修改强>
要仅比较具有相同名称+扩展名的文件,请使用:
@ECHO OFF
setlocal
set "MYDIR=D:\Workspace\diffTool\Release"
set "firstFolder=%MYDIR%\folder1"
set "secondFolder=%MYDIR%\folder2"
for /r "%firstFolder%" %%F in (*) do (
for /r "%secondFolder%" %%G in (*) do (
if "%%~nxF"=="%%~nxG" call D:\Workspace\diffTool\Release\diffTool.exe "%%F" "%%G"
)
)
pause