我想知道为什么我会在这个脚本中收到错误(“(此时并未预料到”)。
for /f "delims=" %%t in (%cd%\Multitool\Multitool.txt) do (
set /p username=
set /p password=
set /p created=
)
if %created%==accountcreated ( goto CONTINUE ) else ( goto CREATE )
我有这些代码行总是给我一个错误:“(此时并未预料到。”
在我的程序中,我想知道用户是否已经创建了一个帐户... 当用户创建一个帐户时,我在%cd%\ Multitool \ Multitool.txt中回显:
(
echo %username%
echo %password%
echo accountcreated
) > %cd%\Multitool\Multitool.txt
那么你能告诉我为什么我会得到这个错误以及如何纠正它吗? 抱歉我的英语不好用法语...
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL enabledelayedexpansion
:: set up logfile and password
SET "logfile=U:\q28542185.txt"
SET "password=dummypassword"
SET "myusername=dummyusername"
:: Dummy log entry
(
echo %myusername%
echo %password%
echo accountcreated
) > %logfile%
:: This is just to ensure the three variables are empty
FOR %%t IN (myusername password created) DO SET "%%t="
for /f "delims=" %%t in (%logfile%) do (
SET "myusername=!password!"
SET "password=!created!"
SET "created=%%t"
)
if %created%==accountcreated ( goto CONTINUE ) else ( goto CREATE )
:continue
ECHO got to continue
GOTO :eof
:create
ECHO got to create
GOTO :EOF
我使用名为q28542185.txt
的文件来接收测试的日志信息。
请注意,username
是由系统初始化的magic variable
,因此我不想更改它,因此我已替换myusername
。
第一部分设置一个虚拟日志文件进行测试。
替换for
循环读取日志文件,并使用delayedexpansion
工具通过变量名“涟漪”行,以便按适当的顺序设置变量。
请注意,如果created
包含 Spaces ,则应将if
语句修改为
if "%created%"=="accountcreated" ....
允许正确的解析序列IF token operator token