我有一个批处理文件,我的目标是只使用一次。在进一步执行时,此批处理文件应该什么也不做。为了解决这个问题,我决定使用If Exist
来检查批处理脚本末尾创建的文件。
所以在一开始我有这个(我去了正确的目录):
If Exist "file.txt" (
goto exit
)
我在文件末尾设置了exit
标记。
我们将赞赏其他方法,但我更倾向于解决这个问题。
答案 0 :(得分:5)
goto manual说:
指示批处理程序跳转到标记的行。
语法 GOTO标签
我认为标签(我不会使用术语标记)名称不应该是exit
,因为存在具有相同名称的Windows命令。将标签更改为
:exitprocess
并做
if exist "file.txt" goto exitprocess
但是,如果您希望使用exit
作为标签,则解决方法是使用
if exist "file.txt" goto :exit
注意冒号,这是告诉goto找到名为exit
的标签
礼貌:@somethingdark解决方法。
答案 1 :(得分:5)
Microsoft向GOTO解释了使用
的可能性goto :EOF
退出批处理文件或批处理子程序的处理,其中标签 EOF (文件结束)是预定义的,不得在批处理文件中明确定义。
退出处理批处理文件或批处理子程序的另一种方法是使用带有参数/B
的命令EXIT,即
exit /B
这只退出批处理而不是整个命令过程,这对于使用 EXIT 退出批处理子程序或从另一个批处理文件调用批处理文件有所不同。
所以它可以用于此任务
if exist "file.txt" goto :EOF
或
if exist "file.txt" exit /B
两行都导致退出当前批处理并返回到调用进程,这是直接调用批处理文件时的命令进程,导致退出命令进程。