我有一个批处理文件,我的目标是只使用一次。在进一步执行时,该批处理文件将不执行任何操作。为了解决这个任务,我决定使用If Exist
来检查在批处理脚本结束时创建的文件。所以在一开始我有这个(我去正确的目录):
If Exist "file.txt" (
goto exit
)
我在文件末尾设置了一个exit
标记。
我们将感谢其他方法,但我更喜欢这个问题的解决方案。
goto手册上说:
指示批处理程序跳转到已标记的行。
语法GOTO标签
我想标签(我不会使用标记)名称不应该是exit
,因为存在具有相同名称的windows命令。将标签更改为
:exitprocess
并进行
if exist "file.txt" goto exitprocess
但是,如果您希望使用exit
作为标签,解决方法是使用
if exist "file.txt" goto :exit
注意冒号,这是告诉goto找到名为exit
的标签
提供:@somethingdark了解解决方法。
Microsoft为GOTO解释了使用的可能性
goto :EOF
以退出批处理文件或批处理子程序的处理,其中标签EOF(文件结束)是预定义的,并且不能在批处理文件中显式定义。
退出批处理文件或批处理子程序的另一种方法是使用带有参数/B
的命令exit,即
exit /B
这只退出批处理,而不是整个命令过程,这与使用EXIT退出批处理子例程或从另一个批处理文件调用批处理文件有区别。
因此,它既可以用于
if exist "file.txt" goto :EOF
或
if exist "file.txt" exit /B
这两行的结果都是退出当前批处理,并返回到调用进程,当直接调用批处理文件导致退出命令进程时,调用进程就是命令进程本身。