Batch file 批处理文件-如果语法错误
在命令提示符下运行此批处理文件时,出现以下错误: 该命令的语法不正确 这与我的Batch file 批处理文件-如果语法错误,batch-file,Batch File,在命令提示符下运行此批处理文件时,出现以下错误: 该命令的语法不正确 这与我的IF语句有关,但据我所知,我的语法是正确的-包括确保括号周围有必要的空格: SET foo=bar :: test IF "%foo%" EQU "bar" ( :: foo ECHO "equal to" ) ELSE ( :: bar ECHO "not equal to" ) 试着这样做: SET foo=bar :: test IF "%foo%" EQU "bar" ( rem
IF
语句有关,但据我所知,我的语法是正确的-包括确保括号周围有必要的空格:
SET foo=bar
:: test
IF "%foo%" EQU "bar" (
:: foo
ECHO "equal to"
) ELSE (
:: bar
ECHO "not equal to"
)
试着这样做:
SET foo=bar
:: test
IF "%foo%" EQU "bar" (
rem foo
ECHO "equal to"
) ELSE (
rem bar
ECHO "not equal to"
)
SET foo=bar
:: test
IF "%foo%" EQU "bar" (
::foo
ECHO "equal to"
) ELSE (
::bar
ECHO "not equal to"
)
或者像这样:
SET foo=bar
:: test
IF "%foo%" EQU "bar" (
rem foo
ECHO "equal to"
) ELSE (
rem bar
ECHO "not equal to"
)
SET foo=bar
:: test
IF "%foo%" EQU "bar" (
::foo
ECHO "equal to"
) ELSE (
::bar
ECHO "not equal to"
)
这是
cmd.exe
中的一个错误。标签(在本例中,:
被视为标签)在括号上下文中不起作用 问题在于您对备注(:)使用标签
::只能安全地用于块外的备注。在块内部,它将尝试执行下一行,因为它假定标签后面跟着一个命令
标签备注后的空行导致错误
可以移除空白行以删除错误。在这种情况下,解析器假定label和echo命令是要执行的命令
试试这个:SET foo=bar
:: test
IF "%foo%" EQU "bar" (
:: foo
ECHO "equal to"
) ELSE (
:: bar
ECHO "not equal to"
)
更安全的选择是使用real remark命令:
SET foo=bar
rem test
IF "%foo%" EQU "bar" (
rem foo
ECHO "equal to"
) ELSE (
rem bar
ECHO "not equal to"
)
更多信息请参见我发誓,我会用一个生锈的spork将批处理文件语法的作者的内脏取出!给这家伙一些信任。最初的command.com是在严格的RAM约束下运行的程序集中创建的,批处理支持可能是事后添加的。问题是,在这个时代,你为什么还要继续折磨自己写批处理文件:)Windows Azure云服务启动脚本:/不要使用标签作为注释。