【发布时间】:2021-11-08 00:55:01
【问题描述】:
我正在尝试为网络策略编写一个 bat 文件,如果它不存在,它将安装一个程序以及其他几个功能。我使用 GOTO 语句取决于是否满足某些标准。但是,标签似乎没有像所有标签一样正确触发。
我已经简化了我的脚本,以便对可能发生的事情有所了解。
@echo off
IF EXIST c:\test\test.txt (GOTO :EXISTING) ELSE GOTO :MISSING
:EXISTING
echo file exists
:MISSING
echo file missing
ping localhost -n 5 >NUL
基本上,它会检查文件“test.txt”是否存在于 id 所在的文件夹“c:\test”中。所以它应该回显文件存在到控制台。但是,“文件存在”和“文件丢失”都会回显到控制台。我发现如果我从文件夹中删除文件或只是重命名它,它只会回显“文件丢失”
为什么它同时运行两个标签?
【问题讨论】:
-
你在这里写了一个
switch没有break的。 -
您将
GOTO视为function()调用,但事实并非如此。
标签: cmd batch-file