如何在 CMD 中进行 IF 检查并执行其他多项操作

问题描述 投票:0回答:2

===== CMD 批处理文件=====

我正在尝试检查变量==“字符串”,然后回显消息并运行程序,否则它必须退出 exit 1(如果有其他情况甚至为空)。

我已经尝试了很多并使用了Google,但我似乎不断收到语法错误和意外的此时错误,CMD 确实很难排除故障,尽管它相当古老但功能强大。

所以我想了解的是我的括号或结构有什么问题,因为它告诉我(是意外的或语法错误或不是预期的......烦人。

我的结构如下:

echo off
if "%1"=="imre" goto imre (
echo found parameter "%1"
) else if NOT %1=="imre" echo you failed

只是不工作;我明白了

(没想到

如果我尝试调整这个,还会出现其他语法错误...

我想要的是:(这是我写的,但它不起作用)

if %variable%=="hello" (
echo hello is correct 
echo now lets start this program 
start /w excel.exe
) else (
exit 1
)

这不起作用,我不明白我做错了什么。 这是我正在努力实现的 CMD Batch

string if-statement cmd windows-console
2个回答
0
投票

你的

%variable%
变量实际上包含
"hello"
还是仅仅包含
hello

如果你的参数没有引号,你应该使用这个:

if "%variable%"=="hello" (
    echo hello is correct 
    echo now lets start this program 
    start /w excel.exe
) else (
    exit 1
)

这样,如果您将

Hello
传递到
%variable%
,您实际上是在比较
"hello" == "hello"


0
投票

是的,您的报价不一致。但我相信 goto 导致了这个问题,因为它先于你想做的其他事情。

试试这个:

echo off
if "%1"=="imre" (
echo found parameter "%1"
goto imre 
) else if NOT "%1"=="imre" echo you failed
© www.soinside.com 2019 - 2024. All rights reserved.