У меня есть сценарий bash, запущенный в Linux, что эквивалентно Windows?Бесконтактный пакетный пакет Windows?
while ./process.sh; do sleep 1; done
У меня есть окна пакетный файл, который я хотел бы работать, пока код возврата 0
У меня есть сценарий bash, запущенный в Linux, что эквивалентно Windows?Бесконтактный пакетный пакет Windows?
while ./process.sh; do sleep 1; done
У меня есть окна пакетный файл, который я хотел бы работать, пока код возврата 0
cmd /q /e /c"for /l %%a in() do (call process.cmd || exit) & >nul timeout /t 1"
Если вы хотите, чтобы проверить его из командной строки, изменение %%a
с %a
Мне это нравится! – Aacini
Мне тоже! @MCND, почему вы используете 'cmd/C'? Думаю, это не нужно, не так ли? просто из-за '/ Q' ?? – aschipfl
@aschipfl, нет, это потому, что я не знаю, должен ли процесс в пакетном файле вызывающего абонента продолжать работу после этой строки. Если я запускаю бесконечный 'for/l' в пакетном контексте, я могу использовать' exit', чтобы оставить его, но пакетный файл закончится. Начиная бесконечный цикл в отдельном экземпляре 'cmd' (который будет запускать код в контексте командной строки), я могу использовать' exit' или 'exit/b', чтобы покинуть цикл и продолжить запуск пакетного файла вызывающего. –
Я думаю, что вы ищете что-то вроде этого:
:LOOP
timeout /T 1 /NOBREAK
call "\path\to\your\process.sh\equivalent\batch\file"
if not ErrorLevel 1 goto :LOOP
Примечание : Это не работает в командной строке. Вам нужно поместить этот код в пакетный файл.
Там будет другая [очень похоже сообщение] (http://stackoverflow.com/q/5487473/5047996) относительно бесконечных циклов ... – aschipfl
Я попытался использовать второй ответ, и это не сработало для меня. –
Что не работает? Зачем? вы получаете сообщение об ошибке или что происходит точно? – aschipfl