Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Запуск скриптом самого себя

Ответить
Настройки темы
CMD/BAT - [решено] Запуск скриптом самого себя

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте, есть такой код:
Код: Выделить весь код
@echo off
%1 start ""/min cmd /c "%~f0" :& exit /b
..тут команды...
Как это работает: запускается скрипт, запускается свернутая командная строка, открытое окно командной строки закрывается, в свернутом выполняются команды, пишутся данные в файл.
start ""/min cmd /c - запустить свернутую командную строку без отображения имени и закрыть по выполнении всех команд
"%~f0" - путь выполняемого командного файла
exit /b - завершает работу скрипта

Что в данном случае делает %1? Что делает :&? Если их убрать, то скрипт не работает. Прошу помощи знатоков.
p.s. код отсюда

Отправлено: 12:50, 07-09-2018

 

Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


здесь написано

Отправлено: 13:31, 07-09-2018 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я понимаю, что %1 это полученный аргумент при вызове сценария, что & группирует команды, я понимаю, что : указывает на метку, но здесь нет метки.
Я не понимаю как это работает комплексно, что примет $1 при повторном вызове сценария? что делает сочетание :&?

Отправлено: 13:40, 07-09-2018 | #3


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата Himyar:
что примет $1 при повторном вызове сценария? »
впишите
Код: Выделить весь код
echo %1
и увидите

Отправлено: 15:38, 07-09-2018 | #4


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Выводится :, неясно для чего этот аргумент и почему без него не работает

Отправлено: 15:48, 07-09-2018 | #5


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1235
Благодарности: 518

Профиль | Отправить PM | Цитировать


Ну, что тут суперсложного-то?
Пакетник запускает сам себя, а чтобы не получить бесконечный запуск, необходимо закомментировать строку запуска...
Код: Выделить весь код
cmd /c "%~f0" :
где %~f0 - собственно, имя сценария
поэтому при самозапуске сценария получите аргумент %1 равный символу ":", что и послужит "комментарием".

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:57, 07-09-2018 | #6


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


YuS_2, спасибо большое

Отправлено: 17:02, 07-09-2018 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Запуск скриптом самого себя

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - Сервер не пингует самого себя suffism575 Windows Server 2008/2008 R2 7 18-02-2013 08:07
Прочее - Как сделать проброс на D-Link 2540u на самого себя mastak Сетевые технологии 9 27-04-2012 16:05
Настройка WSUS сервера на получение обновлений для самого себя TrueAlex WSUS 3 13-12-2011 16:40
Удаление скриптом самого себя skeeter AutoIt 6 07-11-2010 10:09
Прочее - кроме самого себя компьютер ни кого не видит fly_energy Сетевое оборудование 3 06-08-2009 11:12




 
Переход