如何检查用户输入是否以批处理(.bat)脚本中的特定字符串结尾

ams*_*705 11 batch-file batch-processing

我正在编写批处理脚本,如果用户输入为空或不以"DTO"结尾,我需要让用户再次输入DTO名称.

:INPUT
SET /P INPUTDTO=Enter the DTO:

IF "%INPUTDTO%"=="" (
      IF "%INPUTDTO%" ??????? (
             GOTO NODTO
      )
)

:NODTO
ECHO ERROR: Please enter a valid DTO.
GOTO INPUT
Run Code Online (Sandbox Code Playgroud)

如何检查用户输入是否以"DTO"结尾

dbe*_*ham 14

应该清除现有的INPUTDTO值,因为如果用户没有输入任何内容,SET/P将保留现有值.

@echo off
set "INPUTDTO="
:INPUT
SET /P INPUTDTO=Enter the DTO:
if "%INPUTDTO:~-3%" neq "DTO" (
  ECHO ERROR: Please enter a valid DTO.
  goto INPUT
)
Run Code Online (Sandbox Code Playgroud)

/I如果希望比较不区分大小写,请将开关添加到IF语句.

  • @Sabuncu - 当像我一样格式化时,在变量名称之前使用左引号,然后忽略最后一个引号之后的任何文本。它可以防止分配中包含无意的空格。如果线路在应有的位置结束,则没有必要,但这是一个很好的安全防护措施。 (2认同)