如何给变量赋值,并检查Windows批处理程序中它是否为空?

问题描述 投票:0回答:1

这是我编写的代码:

 @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()等效:

set chkScheduleTime=%scheduleTime =%
set  chkScheduleName=%scheduleName =%
batch-file operating-system command cmd
1个回答
0
投票

您需要使用

set chkScheduleTime=%scheduleTime: =%

scheduleTime中删除空格。

而且您也永远不会重置errorMessage,因此一旦遇到错误,它就不会消失。

而且我想您可能想使用if defined errorMessage

© www.soinside.com 2019 - 2024. All rights reserved.