【发布时间】:2018-05-11 06:38:45
【问题描述】:
我想制作一个包含多个 else 条件的批处理文件,并且已经搜索了很多,但我的不工作。我希望该文件检查是否存在两个文件,如果存在则打开其中一个文件。如果两个文件之一不存在,则批处理应比较接下来的两个文件。我的文件是这样的:
IF EXIST "file1.txt" IF EXIST "file2.txt" Goto V1
IF EXIST "file3.txt" IF EXIST "file4.txt" Goto V2
IF EXIST "file5.txt" AND IF EXIST "file6.txt" Goto V3
:V1
cd "folder"
start sample.exe
goto commonexit
:V2
cd "folder2"
start sample2.exe
goto commonexit
:V3
cd "folder3"
start sample3.exe
goto commonexit
:commonexit
这样 cmd 打开并立即关闭。当我注释掉“:commonexit”时,它会打开并通过代码工作,但似乎在双IF条件下(IF ... IF ...)它只关心第二个IF。在它们之间放置一个 AND 运算符并没有帮助。
你们有没有人猜测,可能是什么问题?
编辑: :commonexit 正在工作。我只是不知道 :commonexit 之后的断线会使代码损坏。
【问题讨论】:
-
在批处理中没有什么能比得上“AND 运算符”。你是用双击开始的吗?如果是,请注意,工作文件夹可能不是您所期望的。与
echo on一起运行以观察它的真正作用。 (并在:commonexit后面加上pause以防止窗口关闭) -
嗨斯蒂芬,感谢您的回复。我不知道的是,当 :commonexit 之后有断线时,代码将不起作用。我将使用 Gerhard 的代码再次尝试并发布我的结果。
-
我建议使用例如
Start /D "folder2" sample2.exe可能比使用cd "folder2"后跟start sample2.exe更好。 -
嗯...您在谈论
else子句,但我在您发布的代码中找不到单个else... ;-)
标签: batch-file