Batch file 如何在“用户输入变量”中使用空格;如果;及;若否,";成批报表?

Batch file 如何在“用户输入变量”中使用空格;如果;及;若否,";成批报表?,batch-file,if-statement,user-input,Batch File,If Statement,User Input,我正在制作一个批处理脚本,它使用带有“If”和“If not”语句的用户输入变量。简单?对但是,“If”和“If not”语句要求用户输入变量中有一个空格,如果在用户输入变量中键入一个空格,则会导致许多问题 请记住,我对编码相当陌生,但这里是我的脚本 @echo off :B echo Enter password: set /p password= if %password% == Password WithASpace goto :A if not %password% == Passwor

我正在制作一个批处理脚本,它使用带有“If”和“If not”语句的用户输入变量。简单?对但是,“If”和“If not”语句要求用户输入变量中有一个空格,如果在用户输入变量中键入一个空格,则会导致许多问题

请记住,我对编码相当陌生,但这里是我的脚本

@echo off
:B
echo Enter password:
set /p password=
if %password% == Password WithASpace goto :A
if not %password% == Password WithASpace goto :C
:C
echo Incorrect password
cls
goto :B
:A
echo Correct password, unlocking secret FBI database.
pause
我试着在If和If Not语句中的“passwordwithaspace”文本周围加上引号。那也没用。此时,命令提示符只是说“passwordwithaspace”是意外的,它会立即关闭

@echo off
:B
echo Enter password:
set /p password=
if %password% == Password WithASpace goto :A
if not %password% == Password WithASpace goto :C
:C
echo Incorrect password
cls
goto :B
:A
echo Correct password, unlocking secret FBI database.
pause

那么我该如何解决这个问题呢?

我不知道为什么引号对你不起作用。 这对我很有用:

@echo off
:B
echo Enter password:
set /p password=
if "%password%" == "Password WithASpace" goto :A
if not "%password%" == "Password WithASpace" goto :C
:C
echo Incorrect password
cls
goto :B
:A
echo Correct password, unlocking secret FBI database.
pause

我不知道为什么引号对你不起作用。 这对我很有用:

@echo off
:B
echo Enter password:
set /p password=
if "%password%" == "Password WithASpace" goto :A
if not "%password%" == "Password WithASpace" goto :C
:C
echo Incorrect password
cls
goto :B
:A
echo Correct password, unlocking secret FBI database.
pause

我想这是因为我忘了在%password周围加引号。%谢谢!我想这是因为我忘了在%password周围加引号。%谢谢!可能的重复可能的重复