首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows批处理程序中为变量赋值并检查其是否为空?

如何在Windows批处理程序中为变量赋值并检查其是否为空?
EN

Stack Overflow用户
提问于 2012-09-10 04:22:33
回答 1查看 572关注 0票数 0

下面是我写的代码:

代码语言:javascript
复制
 @echo off
:top
set chkScheduleTime=""
set chkScheduleName=""


set /p scheduleName=Enter the name of the schedule?
cls
set /p scheduleTime=Enter the time to schedule task?
cls


set chkScheduleTime=%scheduleTime =%
set  chkScheduleName=%scheduleName =%

IF /I "%chkScheduleName%"=="" ( 
    set errorMessage=*Name of schedule required 
)


IF /I "%chkScheduleTime%"=="" (
    set errorMessage=%errorMessage% *Time of schedule required 
)

IF NOT defined "%errorMessage%" (

    echo %errorMessage%
    pause
    cls
    goto top
)




echo Schedule Name %scheduleName% 
echo.
echo Time: %scheduleTime%


:end

我尝试做的是从用户那里接受两个参数,它们是任务计划名称和任务的时间。然后,程序将检查变量是否为空,并显示变量为空的错误,然后提示用户重新输入变量(如果其中一个或两个都没有输入)。但是,即使用户输入了日程名称和时间,程序也会显示以下内容:

*所需日程名称*所需日程时间

还要注意,代码的以下部分用于帮助检查用户输入的值是否仅为空格。因此,它相当于常规编程中的Trim():

代码语言:javascript
复制
set chkScheduleTime=%scheduleTime =%
set  chkScheduleName=%scheduleName =%
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-10 05:04:04

您需要使用

代码语言:javascript
复制
set chkScheduleTime=%scheduleTime: =%

去掉scheduleTime上的空格。

此外,您永远不会重置errorMessage,因此一旦出现错误,它就不会消失。

另外,我认为您可能想要使用if defined errorMessage

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12342644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档