2015-02-16 3 views
0

Я хотел бы знать, почему я получаю сообщение об ошибке («(не ожидались в это время») в этом сценарииBatch: (не ожидался в это время

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
@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 содержит пространств то ваш if заявление должно быть изменено, чтобы

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

, чтобы последовательность правильно синтаксический IF token operator token

Смежные вопросы