当批处理文件已经存在时,如何在批处理文件开始时退出批处理



我有一个批处理文件,我的目标是只使用一次。在进一步执行时,该批处理文件将不执行任何操作。为了解决这个任务,我决定使用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

这两行的结果都是退出当前批处理,并返回到调用进程,当直接调用批处理文件导致退出命令进程时,调用进程就是命令进程本身。

相关内容

最新更新