2014-02-12 3 views
0

Я хочу запустить командную строку с patameters, чтобы заставить ее ждать подключения, затем выполните «gpupdate/force», а затем пользователь nofity выполнит задание. То, что я застрял, заставляет его ждать подключения.параметр командной строки, в то время как

cmd /c echo Connect a network cable. & *something* & echo n | gpupdate /force & msg * Done. 

Если что-то был следующий код, то он будет работать:

:top 
ping -n 1 site.com >nul 
if errorlevel 1 (
    goto top 
) 

, но я не знаю, как бы я это пишу на 1 строку в качестве параметра.

Как я могу заставить его работать так, как я желаю? Альтернативные решения приветствуются!

ответ

2

Я не понимаю вашего отвращения к пакетному сценарию. Но следующий лайнер должен работать.

@echo Connect a network cable.&cmd /q /c "for /l %N in() do ping -n 1 site.com >nul&&exit"&echo echo n^|gpupdate /force&msg * Done. 

Ключевой бит cmd /q /c "for /l %N in() do ping -n 1 site.com >nul&&exit". Создается новый CMD.EXE-процесс, который входит в бесконечный цикл FOR. Он постоянно пинги сайта, пока он не будет успешным. Команда EXIT выполняется только тогда, когда PING был успешным из-за оператора &&. После выполнения EXIT управление возвращается родительскому процессу CMD.EXE.

+0

Это именно то, что я искал. Благодарю. – LukAss741

0

Почему бы не сделать весь пакетный файл?

@echo off 
echo Connect a network cable. 
:top 
ping -n 1 site.com >nul || goto :top 
echo Connected. 
gpupdate /force 
msg * Done. 
+0

Как было бы идеально, чтобы запустить его только с помощью макроса клавиатуры на любом компьютере - не только те, у которых есть этот файл. Спасибо, в любом случае. – LukAss741

+0

@ LukAss741 - И как именно на разных компьютерах будет определяться макрос? Возможно, файл? Мне кажется, что вам понадобится файл независимо от него, если вы не ожидаете от пользователей ввода сложной команды. – dbenham

+0

Нажатием клавиш: win c m d/c e c h o C o n и т. Д. ... Вводится сканером после сканирования qr, aztec или какого-либо другого кода. Именно по этой причине я хотел сделать это только как параметр командной строки. – LukAss741

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