01MDM
Проверил, действительно значение переменной вытаскивается в вашем примере из под SetLocol. Хотя я и не понимаю почему... Но в моём случае почему-то не работает.
Может, подскажете в чём дело? Привожу фрагмент в оригинальном виде.
[MORE]
Set ExclamationMark=!
SetLocal EnableDelayedExpansion
For /F "Skip=12 Tokens=*" %%A In ('%SystemRoot%\System32\Reg.exe Query "HKLM\System\CurrentControlSet\Services\EventLog"') Do (
"%SystemRoot%\System32\Reg.Exe" Query "%%A /V "File" && (
Set EvtFile=
@For /F "Skip=2 Tokens=3-28" %%a In ('%SystemRoot%\System32\Reg.Exe Query "%%A" /V "File"') Do (
@For %%A In (%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z) Do (
If "%%A" Gtr " " (
Set EvtFile=!EvtFile! %%A
)
)
)
Set EvtFile=!EvtFile:~1!
Echo "!EvtFile!">> %Log%
Copy /Y "!EvtFile!" D:\Events\%CurrentDay%\*.*>> %Log% || (
Set /A Failures=Failures+1
Echo. >> %Log%
Echo ^>^>^>^>^>^>^>^> FAILURE!ExclamationMark!!ExclamationMark!!ExclamationMark!>> %Log%
Echo Ôàéë "!EvtFile!" íå áûë ñêîïèðîâàí.>> %Log%
Echo. >> %Log%
)
)
)
Echo !Failures!>> %Log%
EndLocal & (
Echo %Failures%>> %Log%
)
[/MORE]
Предпоследнее Echo возвращает правильные данные, а последнее - "ECHO is off."
Добавлено:
Только русский текст в одном из Echo исказился. Видимо из-за настроек в моём браузере.
Проверил, действительно значение переменной вытаскивается в вашем примере из под SetLocol. Хотя я и не понимаю почему... Но в моём случае почему-то не работает.
Может, подскажете в чём дело? Привожу фрагмент в оригинальном виде.
[MORE]
Set ExclamationMark=!
SetLocal EnableDelayedExpansion
For /F "Skip=12 Tokens=*" %%A In ('%SystemRoot%\System32\Reg.exe Query "HKLM\System\CurrentControlSet\Services\EventLog"') Do (
"%SystemRoot%\System32\Reg.Exe" Query "%%A /V "File" && (
Set EvtFile=
@For /F "Skip=2 Tokens=3-28" %%a In ('%SystemRoot%\System32\Reg.Exe Query "%%A" /V "File"') Do (
@For %%A In (%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z) Do (
If "%%A" Gtr " " (
Set EvtFile=!EvtFile! %%A
)
)
)
Set EvtFile=!EvtFile:~1!
Echo "!EvtFile!">> %Log%
Copy /Y "!EvtFile!" D:\Events\%CurrentDay%\*.*>> %Log% || (
Set /A Failures=Failures+1
Echo. >> %Log%
Echo ^>^>^>^>^>^>^>^> FAILURE!ExclamationMark!!ExclamationMark!!ExclamationMark!>> %Log%
Echo Ôàéë "!EvtFile!" íå áûë ñêîïèðîâàí.>> %Log%
Echo. >> %Log%
)
)
)
Echo !Failures!>> %Log%
EndLocal & (
Echo %Failures%>> %Log%
)
[/MORE]
Предпоследнее Echo возвращает правильные данные, а последнее - "ECHO is off."
Добавлено:
Только русский текст в одном из Echo исказился. Видимо из-за настроек в моём браузере.