1

При использовании Unix я могу запустить несколько команд в командной строке подряд:

# command1; command2; command3

Или даже связать их, проверив статусы выхода:

# command1 && command2 && command3

Возможно ли это в командной строке Windows XP?

Мне часто приходится запускать несколько команд по сборке программного обеспечения в Windows ...

3 ответа3

4

У вас есть несколько вариантов в командной строке.

Как упоминалось в @barlop, есть команды && для объединения команд, если предыдущая была успешной.

Там также || , который прекратит выполнение после первой успешной команды.

Наконец, команды могут быть сгруппированы с помощью круглых скобок () следующим образом:

C:\>(
echo command 1
echo command 2
)

Группирование также может использоваться с другими командами, такими как if или for , с учетом таких вещей, как:

C:\>for %i in (*.7z) do @(
md "%~ni"
cd "%~ni"
7za.exe x "%~fi"
cd ..
del "%i"
)
2

В cmd.exe вы можете использовать & для цепочки команд (например ; в sh).

echo a & echo b

&& и || операторы тоже работают.

1

ntcmds.chm упоминает
под понятиями .. "обзор оболочки cmd"

&& Используется для запуска команды, следующей за &&, только если команда, предшествующая символу, успешна

Так что вы можете сделать

C:\>echo a && echo a

добавленной

& больше подходит в качестве ответа, чем &&

здесь от ntcmds.chm

& "Используйте для разделения нескольких команд в одной командной строке. Cmd.exe запускает первую команду, а затем вторую команду. "

&& "Используйте для запуска команды, следующей за &&, только если команда, предшествующая символу, выполнена успешно. Cmd.exe запускает первую команду, а затем запускает вторую команду, только если первая команда выполнена успешно. "(это логическое короткое замыкание И)

|| Msgstr "Используйте для запуска команды, следующей за ||, только если команда, предшествующая ||, не выполнена. Cmd.exe запускает первую команду, а затем запускает вторую команду только в том случае, если первая команда не была успешно завершена (получает код ошибки больше нуля). "(Это логическое короткое замыкание ИЛИ, т.е. с учетом выражения" A или B " где A и B являются логическими значениями TRUE или FALSE, ему нужно только одно, чтобы оно было истинным, поэтому, если A истинно, оно не пойдет так далеко, как B, потому что в этом нет необходимости, чтобы выполнить свою оценку)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .