批次:(此时没有预料到

Batch: ( was not expected at this time

我想知道为什么我会在这个脚本中收到错误消息(“(此时未预料到”)。

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

那么你能告诉我为什么会出现这个错误以及如何更正它吗? 抱歉我的英语不好我法语...

@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 工具读取日志文件和 "ripples" 通过变量名的行,以便按适当的顺序设置变量。

请注意,如果 created 包含 Spaces 那么您的 if 语句应修改为

if "%created%"=="accountcreated" ....

允许正确的解析顺序IF token operator token