Вопрос о надежности Windows Batch Script - PullRequest
0 голосов
/ 13 января 2011

Я получил довольно длинный пакетный скрипт для Windows. В середине этого раздела есть раздел, использующий appcmd для определения корневого пути сайта в моем IIS. Этот раздел работает нормально, когда выполняется автономно. Но когда я выполняю пакет целом , этот раздел может не определить путь сайта время от времени . Я полностью смущен этой проблемой ненадежности. Кто-нибудь встречал это раньше?

Спасибо

Решение

Кажется, что есть некоторая задержка между объявлением переменной и ее вступлением в силу. Я изменил порядок какой-то части командного файла, и пока он работает нормально. Я должен сказать, это все еще странно.

1 Ответ

0 голосов
/ 13 января 2011

Поскольку я не знаю, какой тип проблемы у вас в неизвестном коде, я могу только показать известное непредсказуемое или случайное поведение в пакетных файлах.

1 - эхо нескольких задач в конце строки Иногдано не всегда перевод строки и возврат каретки печатаются как ASCII-символы 10/13 (круг и примечание) вместо начала новой строки.

@echo off
if "%1"=="/second" (
  call :task %2
  goto :eof
)
(call "%~0" /second 1 >con ) | ( call "%~0" /second 2 )
echo END OF TASKS
goto :eof

:task
for /L %%n IN (1,1,10) DO (
    echo This is task%1, output no %%n
    ping -n 2 localhost > nul
)

goto :eof

2- Иногда, но не всегда, расширение% ~ ^ LF аварийно завершает работу, затем окно командной строки немедленно закрывается.

@echo off
set critical_content=hello%%~^

echo No crash
for %%a in (1 ) do (
    for %%x in (4) do (
        rem #%critical_content%#
    )
) 
...