2

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

我正在尝试检查一个变量==“字符串”,然后回显消息并运行程序,否则它必须退出出口 1,如果有其他任何东西甚至是空的。

我已经尝试了很多并使用了谷歌,但我似乎不断收到语法错误和意想不到的错误,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

4

2 回答 2

0

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

尝试这个:

echo off
if "%1"=="imre" (
echo found parameter "%1"
goto imre 
) else if NOT "%1"=="imre" echo you failed
于 2012-07-05T18:43:48.830 回答
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"

于 2012-07-05T18:39:09.470 回答