我的目标是将一个txt文件的内容与特定文件夹中所有文本文件的内容进行比较,如果 ANY txt文件匹配,那么如果没有匹配则执行一组进程然后执行另一套。
我尝试过以下操作:
@echo off
:main
fc "C:\Users\degibson\Desktop\test\*.txt" "C:\Users\degibson\Desktop\test2\temp1.txt" > NUL
if errorlevel 1 goto error
:next
echo do some important task
pause
:error
echo do some other important task
pause
问题 - 仅当所有文件与temp1.txt内容匹配时才有效。
有没有更好的方法来完成这项任务?
答案 0 :(得分:0)
您可以使用FOR
命令迭代目录中的所有文本文件。然后我建议您使用CALL
命令而不是GOTO
,因为CALL
将返回执行FOR
命令,而GOTO
将打破FOR
命令执行。执行返回FOR
命令,使用内置:EOF
标签结束当前调用的进程。您也可以使用EXIT /B
。
@ECHO OFF
:main
FOR %%G IN (C:\Users\degibson\Desktop\test\*.txt) DO (
fc "%%G" "C:\Users\degibson\Desktop\test2\temp1.txt" >NUL
if errorlevel 1 (
CALL :error
) ELSE (
CALL :next
)
)
GOTO :EOF
:next
echo do some important task
pause
GOTO :EOF
:error
echo do some other important task
pause
GOTO :EOF