У меня есть командный файл, который принимает три параметра [log: путь], [logok: путь], [logerr: путь]. Значения соответствующего параметра: log:c:\logs\install.log
, logok:c:\logs\installok.log
, logerr:c:\logs\installerr.log
.
Мне нужно обработать эти 3 параметра и установить их для соответствующей переменной log=c:\logs\install.log
, logok=c:\logs\installok.log
, logerr=c:\logs\installerr.log
, поэтому что я могу использовать их на следующем шаге, чтобы создать файл с этими путями.
Я написал скрипт ниже, но почему-то каждая переменная печатает "ECHO on". Это должно фактически напечатать путь местоположения. Есть идеи, как этого добиться?
REM PARAMS ARE [LOG:PATH] [LOGOK:PATH] [LOGERR:PATH]
REM ACCESS WITH '%LOG%', '%LOGOK%' AND '%LOGERR%'
REM SETUP LOCALIZED ENVIRONMENT VARIABLES FOR THE LOG, LOGOK AND LOGERR PARAMS
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%A IN (%*) DO (
ECHO %%A >> C:\LOGS\TEST1.TXT
FOR /F "TOKENS=1,2,3 DELIMS=:" %%G IN ("%%A") DO (
SET %%G=%%H:%%I
)
)
ENDLOCAL
ECHO %LOG% >> C:\LOGS\TEST2.TXT
ECHO %LOGOK% >> C:\LOGS\TEST3.TXT
ECHO %LOGERR% >> C:\LOGS\TEST4.TXT
START /WAIT MSIEXEC /I "%~DP0SETUP.MSI" /QN
SET EXIT_CODE=%ERRORLEVEL%
REM If the instalaltion is successful it should a create installok.log file in 'c:\logs'
IF %EXIT_CODE% EQU 0 ECHO INSTALLED >> %LOGOK%
REM If it fails then it should a create installerr.log file 'c:\logs')
IF NOT EXIST %LOGOK% ECHO FAILED >> %LOGERR%
Вывод TEST1.TXT:
log:c:\logs\install.log
logok:c:\logs\installok.log
logerr:c:\logs\installerr.log
Вывод TEST1.TXT
, TEST2.TXT
, TEST3.TXT
:
ECHO is on.