如何检查cmd文件中的空值?

Par*_*agJ 8 cmd batch-file

我有下面的命令行文件.我需要检查变量的空值.我没有提供任何命令行参数.

@echo off
@set PASSWORD=
@set PORT=9001
@set command=START
if %PASSWORD% NEQ () GOTO MyLabel

:MyLabel
@set command=%command% -p%PASSWORD%

@set command=%command% -i%PORT%
@echo %command%
Run Code Online (Sandbox Code Playgroud)

我尝试了几个选项,比如与空括号(()),空字符串("")进行比较,但似乎没有任何效果.运行时它给我以下输出:

()此时出人意料.

我使用的是Windows 7 x32.有人可以帮忙吗?

miv*_*ivk 10

使用IF DEFINED variable没有围绕变量的百分号.

在XP(32位)和Win7 x64中测试:

SET PASSWORD=
IF DEFINED PASSWORD (echo PASSWORD = %PASSWORD%) ELSE (echo PASSWORD is empty or undefined)
IF DEFINED USERNAME (echo USERNAME = %USERNAME%) ELSE (echo USERNAME is empty or undefined)
Run Code Online (Sandbox Code Playgroud)


NPE*_*NPE 9

以下应该这样做:

if [%PASSWORD%] NEQ [] GOTO MyLabel
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅ss64.com.