gpt4 book ai didi

batch-file - 检查dos批处理文件中的输入命令?

转载 作者:行者123 更新时间:2023-12-04 02:07:05 24 4
gpt4 key购买 nike

我在 dos 批处理文件中将输入参数作为命令运行,因为我问:
Run an input parameter as command in dos batch script .
这有效,但是我遇到的问题是:检查输入命令是否为空。
我所做的:

SETLOCAL
set CMD=%*
echo Running command [%CMD%]
IF "%CMD%"=="" (
echo "Input argument missing: command"
GOTO :end
)
echo "XXX %CMD%"

并运行:
script.bat echo "a b c"

将输出:
Running command [echo "a b c"]
b was unexpected at this time.

这发生在 IF 条件下,但为什么呢?

如何检查我的输入是否为空。我知道如何在 dos 中检查字符串是否为空,但由于某种原因它在这种组合中不起作用:(
顺便说一句:如果我删除 IF 条件,它运行良好,即:命令执行正确。
  • 埃德
  • 最佳答案

    先测试是否没有参数,然后分配和处理命令:

    IF .%1 == . (
    echo "Input argument missing: command"
    GOTO :eof
    )

    SETLOCAL
    set CMD=%*
    echo Running command [%CMD%]
    echo "XXX %CMD%"

    至于“为什么?”,是因为 CMD的值中的引号引起的。 ( a 之前的那个)关闭 %CMD% 之前的引号,因此字符串显示为 "echo "a b c"" ,因此 b与字符串分离,这会导致命令处理器失败。 (它需要一个比较标记,比如 ==EQU ,但不是一些奇怪的 b )。

    关于batch-file - 检查dos批处理文件中的输入命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9723301/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com