Windows 使用for/f函数在批处理编程中使用空格

Windows 使用for/f函数在批处理编程中使用空格,windows,batch-file,Windows,Batch File,我用所有这些for/f函数制作了一个巨大的批处理文件。因此,其工作方式是用户必须输入“登录”字样。任何其他事情,电脑都会说“不工作”。这只适用于单字输入,否则,文件将关闭。此外,两个或更多不正确的输入也将关闭。这是我的密码: :main @echo off set /p PROGRAM=What do you want to do? for /f "usebackq tokens=* delims=" %%a in (password.txt) DO ( set TEXT=%%a ) if %

我用所有这些for/f函数制作了一个巨大的批处理文件。因此,其工作方式是用户必须输入“登录”字样。任何其他事情,电脑都会说“不工作”。这只适用于单字输入,否则,文件将关闭。此外,两个或更多不正确的输入也将关闭。这是我的密码:

:main
@echo off
set /p PROGRAM=What do you want to do?
for /f "usebackq tokens=* delims=" %%a in (password.txt) DO (
set TEXT=%%a
)

if %PROGRAM%==%TEXT% goto works
cls
echo not work
pause
goto main

:works
cls
echo hi
pause
文件“password.txt”包含以下字符串“登录”。它也在批处理文件的同一目录中


任何帮助都将不胜感激

试试这样的方法:

@echo off
:main
cls
set /p "PROGRAM=What do you want to do ? "
for /f "usebackq tokens=* delims=" %%a in (`Type password.txt`) DO (
    set TEXT=%%a
)

if "%PROGRAM%"=="%TEXT%" goto:works
cls
echo not work
pause
goto:main

:works
cls
echo hi
pause

试试这样:

@echo off
:main
cls
set /p "PROGRAM=What do you want to do ? "
for /f "usebackq tokens=* delims=" %%a in (`Type password.txt`) DO (
    set TEXT=%%a
)

if "%PROGRAM%"=="%TEXT%" goto:works
cls
echo not work
pause
goto:main

:works
cls
echo hi
pause

更多引用<代码>设置“TEXT=%%a”和
如果“%PROGRAM%”==“TEXT%”
。另外,在调试时删除
@echo off
。您正在抑制可能会告诉您错误所在的错误消息。更多引用<代码>设置“TEXT=%%a”和
如果“%PROGRAM%”==“TEXT%”
。另外,在调试时删除
@echo off
。您正在抑制会告诉您出了什么问题的错误消息。谢谢提示!!!这正是我所需要的,而且很有效!!非常感谢@阿鲁沙加兰普你忘了把它标记为一个answser!谢谢你的提示!!!这正是我所需要的,而且很有效!!非常感谢@阿鲁沙加兰普你忘了把它标记为一个answser!