8

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

@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%

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

() 在这个时候是出乎意料的。

我正在使用 Windows 7 x32。有人可以帮忙吗?

4

2 回答 2

10

以下应该做到这一点:

if [%PASSWORD%] NEQ [] GOTO MyLabel

有关详细信息,请参阅ss64.com

于 2012-04-16T12:32:24.147 回答
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)
于 2012-06-09T11:54:47.543 回答