我正在尝试解析多行输出,并在一些方面挣扎。我正在尝试编写一个脚本,该脚本将执行“ diff”命令并识别已被修改或添加到核心项目的文件。那里的脚本接受2个输入参数作为主存储库的顶层和修改后的项目的顶层。代码是:
for /f "delims=" %%a in ('diff -qr "%path1%" "%path2%"') do (
SET output=%%a
echo a:%%a
echo output:%output%
...
)
我遇到的第一个问题是输出是
因此,似乎'SET output'命令似乎没有为'for'循环分配变量值。这使得处理输出成为挑战。我想做的是将diff结果分成不同的列表。 diff实用程序会生成3种可能的输出:
我试图确定输出字符串属于哪种类型的输出,然后仅去除 path1 文件的文件名,但是我之前用于测试的代码包含的字符串不适用于%% a变量;即:
SET newFile=Only^ in^
if NOT "x%%a:%newFile%=%% == "x%%a%%" do ...
感谢您的帮助。谢谢
-b