cmd несколько команд в одной строке

Для того чтобы выполнить несколько команд из одной командной строки, нужно объединить их с помощью символа условной обработки:

команда1 & команда2 — Используется для разделения нескольких команд в одной командной строке. В cmd.exe выполняется первая команда, затем вторая команда.

команда1 && команда2 — Запускает команду, стоящую за символом &&, только если команда, стоящая перед этим символом была выполнена успешно. В cmd.exe выполняется первая команда. Вторая команда выполняется, только если первая была выполнена успешно.

команда1 || команда2 — Запускает команду, стоящую за символом ||, только если команда, стоящая перед символом || не была выполнена. В cmd.exe выполняется первая команда. Вторая команда выполняется, только если первая не была выполнена (полученный код ошибки превышает ноль).

Пример:

С файла file.txt будет снят атрибут «Скрытый» и если команда attrib при этом не вернёт ошибку, файл будет переименован в file.tmp.

Комментарии

Большое спасибо за статью! Именно то, что мне было нужно.

Офигеть! Полезные советы! Спасибо!

Спасибо большое. Давно искал.

Крутяк, добавлю в закладки.

пфффффффффффф вот это лайфхак епт, я тут тыркаю по 6 команд в гите поштучно, а тут вон оно че Михалыч. спасибо большое!

одна вертикальная черта | используется когда нужно выполнить одновременно несколько команд, не зависимо от результата и завершения предыдущей команды

Одна вертикальная черта | перенаправляет вывод предыдущей команды следующей. Например type «file1.txt» | find »string1″ ищет в файле строку содержащую «string1» и выводит ее. Этот вывод можно отправить через | на следующую команду. Или, используя пример: (type «file1.txt» | find »string1″ >nul) && (команды если строка найдена) || (команды если строка не найдена)

При одной вертикальной линии команды выполняются всё равно последовательно.

В командной строке можно объединять сразу несколько команд в одну строку (в один запуск). Например, вам нужно выполнить сначала одну команду, за ней вторую и так далее. Но вы хотите сразу вбить в командной строке одну инструкцию, которая все сделает.

Выполнение команд последовательно

Например, мы хотим выполнить сначала одну команду. Затем, когда она отработает (вернет управление в командную строку), нам нужно запустить вторую команду. Для этого служит символ «;». Таким образом, если набрать в терминале:

то сначала запустится первая команда command1 , а когда управление вернется в терминал, то запустится вторая и так далее.

Зависимое выполнение команд

Символы && и || означают не что иное, как логическое И и ИЛИ . Поэтому когда мы пишем:

то это означает, что команда command2 будет выполнена только в том случае, если команда command1 была выполнена успешно (вернула нулевой код завершения). Каждая следующая команда выполняется только при успешном выполнении предыдущей.

то команда command2 будет выполнена только в том случает, если command1 вернула ошибку (не нулевой код завершения). Каждая следующая команда запускается только если предыдущая вернула ошибку.

Такое поведение объясняется очень просто: интерпретируя И нет смысла выполнять вторую команду, если первая вернула ошибку. А интерпретируя ИЛИ нет смысла выполнять вторую команду если первая выполнилась с успехом.

Этот же результат будет получен в результате выполнения кода:

Операторы && и || можно объединять в одной командной строке:

Первая команда echo выполняется при удачном выполнении команды grep , а вторая — при неудачном.

Эти операторы часто используются в условиях if :

Обе команды должны возвратить нулевой код завершения (логическая операция И ), чтобы выполнилась команда command3 . Этот фрагмент кода можно записать и так:

Еще одни пример использования:

Хотя бы одна команда должна возвратить нулевой код завершения (логическая операция ИЛИ ), чтобы выполнилась команда command3 . Этот фрагмент кода можно записать и так:

Как выполнить несколько команд в командной строке Windows только с одной строкой?

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

Это не работает. Есть ли символ или разделитель типа ‘;’ выполнить что-то подобное?

7 ответов

&& выполнит команду 2, когда команда 1 будет завершена, если она не сработает.

& будет выполняться независимо.

Как минимум в MS-DOS 6.22 я использовал ключ Ctrl + T , чтобы получить символ абзаца. Это работало так же, как и & amp; , упомянутое Phoshi. Это будет работать, однако, если у вас работает doskey.exe.

Если вы хотите выполнить несколько команд с 1 строкой, где вы, например, запускаете команды с start , если вы хотите выполнить команду следующим образом:

Затем вам нужно сделать это за 2 шага (однострочное решение находится в конце этого ответа).

Сначала напишите команды во временный пакетный файл (в этом случае вы можете использовать & или && ):

Обратите внимание, что вам нужно «избежать» каждого из «&»s (амперсандов) с «^» чтобы они могли рассматриваться как обычные символы в команде echo . Кроме того, вы можете создать временный пакетный файл с помощью текстового редактора, например «Блокнот».

Затем используйте start для запуска командного файла:

Note: The empty pair of double-quote marks is for the «Title» that will be shown in the title-bar of the command window that start will open. This «Title» argument is technically an optional argument to start , but it is actually required, if the command that start will run is double-quoted. For instance, in the second example:

start «» «temporary foobar.cmd»

if you leave out the empty pair of double quote marks like this:

start «temporary foobar.cmd»

then start will open a new command window, and use «temporary foobar.cmd» as the new command window «Title» , and nothing will be executed in the new command window.)

Если вы хотите, чтобы start дождался завершения командного файла (после отклонения pause ), до завершения start , вам нужно добавить переключатель /w в команду start :

Вы можете поместить все это вместе на одну строку и даже удалить (удалить) временный пакетный файл ( foobar.cmd ):

Обратите внимание, что если вы собираетесь удалить временный пакетный файл, вам нужно запустить start с помощью переключателя /w , в противном случае временный командный файл, вероятно, будет удален до того, как он сможет запустить.

Оцените статью