【问题标题】:How to IF check and do multiple things else in CMD如何在 CMD 中进行 IF 检查并执行多项其他操作
【发布时间】:2012-07-06 04:56:31
【问题描述】:

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

我正在尝试检查 variable=="string" 然后回显消息并运行程序,否则它必须退出退出 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 正在努力实现的目标

【问题讨论】:

  • 我认为您应该编辑您的帖子以概述您想要实现的行为,而不是提供伪代码。给出一个带有变量的真实场景以及在所有情况下会发生什么。
  • 我不知道如何编辑我的帖子。我是新来的。
  • Click here - 我刚刚为您的帖子链接了标签下的按钮。
  • 好的,我刚刚编辑了它。我试图解释我想要什么并展示我写的代码。

标签: string if-statement cmd windows-console


【解决方案1】:

您的%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"

【讨论】:

  • 可能除了引号,是的。上面的代码对我有用。
  • 你推荐哪个dos编辑器,textpad,notepad++还是什么?我认为记事本很古老......我发现看起来和使用并不可怕。感谢您的帮助,非常感谢。我想我不知道我以前在做什么,但我发誓我遇到了语法错误和意外错误,这让我很生气。现在当我尝试时,它确实有效,也许我没有在这里正确复制和粘贴
  • 我一直只用记事本
  • 我喜欢你的网站 - 有一段时间没有 IRC 了。我在 ZANet 的日子已经一去不复返了!我猜我不介意 Undernet 或 Efnet。
【解决方案2】:

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

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 2010-11-15
    • 2018-07-01
    • 2017-08-09
    相关资源
    最近更新 更多