Используйте псевдоним для запуска цикла - PullRequest
0 голосов
/ 14 ноября 2018

Я хотел бы иметь возможность вручную вводить ключевое слово 'псевдоним' в командной консоли и запускать указанную команду определенное количество раз.

taskkill /PID "%PID%" /f >nul 2>&1

Я нашел эту команду, которая будет выполнятьсяцикл:

для / l% x in (1, 1, 5) do

Он отлично работает для простых команд, таких как отображение текста, но когда я запускаю следующее (без > nul 2> & 1 только для целей этого теста)

for /l %x in (1, 1, 5) do taskkill /PID "%PID%" /f

он останавливается через один раз (с отображением сообщения об успехе) вместо повторения этой же команды еще 4 раза.

Как заставить команду выполнить несколько раз без остановки после каждого экземпляра?

И как только это будет достигнуто, как я могу запустить эту команду из псевдонима?

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

set "close=taskkill /PID "%PID%" /f >nul 2>&1"
doskey close=taskkill /PID "%PID%" /f ^>nul 2^>^&1

и этот символ двойного процента будет необходим для команды% x loop, но я до сих пор не знаю, какой синтаксис использовать для запуска команды looping при вводе указанного ключевого слова 'alias'.

1 Ответ

0 голосов
/ 14 ноября 2018

Из командной строки:

Примечание: > находится в начале строки для представления приглашения.

>doskey close=for /l %x in (1, 1, 5) do taskkill /pid ^%pid^% /f
>set "pid=10"
>close

- установить макрос doskey для использования %pid%. Установите pid в значение, т.е. 10, а затем выполните макрос.

>doskey close=for /l %x in (1, 1, 5) do taskkill /pid $1 /f
>close 10

- установить макрос doskey для использования первого аргумента в качестве pid. Выполните макрос, используя аргумент, т.е. 10.


Из командного файла для установки doskey:

doskey close=for /l %%x in (1, 1, 5) do taskkill /pid %%pid%% /f

или установить в качестве аргумента для передачи pid.

doskey close=for /l %%x in (1, 1, 5) do taskkill /pid $1 /f

Выполнить макросы, как в 1-м примере 2 командной строки.


Команда в макросе будет выполняться 5 раз. Запуск макроса показан в примерах командной строки.

...