Если вы хотите выполнить несколько команд в 1 строке, где вы начинаете команды с start
, например, если вы хотите выполнить такую команду:
start "" netsh dump && pause
Тогда вам нужно выполнить это в два шага (решение из одной строки находится в конце этого ответа).
Сначала запишите команды во временный пакетный файл (в данном случае можно использовать &
или &&
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
Обратите внимание, что вам нужно “экранировать” каждый из "&"s
(амперсанды) с помощью "^"
, чтобы их можно было рассматривать как обычные символы в файле echo
command. в качестве альтернативы вы можете создать временный пакетный файл с помощью текстового редактора, например, блокнота.
Затем используйте start
для запуска пакетного файла:
start "" foobar.cmd
-or-
start "" "temporary foobar.cmd"
Note: Пустая пара двойных кавычек предназначена для "Title"
, которая будет показана в строке заголовка командного окна, которое откроется start
. Этот аргумент "Title"
технически является аргументом optional для start
, но на самом деле он равен required, если команда, которую выполнит start
, заключена в двойные кавычки. Например, во втором примере:
start "" "temporary foobar.cmd"
если пропустить пустую пару двойных кавычек, как эта:
start "temporary foobar.cmd"
тогда start
откроет новое командное окно, и использует "temporary foobar.cmd"
в качестве нового командного окна "Title"
, а nothing будет выполнено в новом командном окне)).
Если вы хотите, чтобы start
ждал завершения пакетного файла (после того, как pause
будет отвергнут), прежде чем start
завершится, то вам нужно добавить переключатель /w
в команду start
:
start "" /w foobar.cmd
Вы можете собрать все это в одну строку и даже удалить (удалить) временный пакетный файл (foobar.cmd
):
Обратите внимание, что если вы собираетесь удалить временный пакетный файл, вам нужно запустить start
с ключом /w
, иначе временный пакетный файл, скорее всего, будет удален до того, как у вас появится возможность запустить его.