Как да изпълня две команди на един ред в CMD на Windows?

Искам да изпълня две команди в конзолата CMD на Windows.

В Linux бих го направил по следния начин

touch thisfile ; ls -lstrh

Как се прави това в Windows?

Решение

Така е във всички операционни системи на Microsoft от 2000 г. насам, а и до днес:

dir & echo foo

Ако искате втората команда да се изпълни само ако първата е приключила успешно:

dir && echo foo

Синтаксисът с един амперсанд (&) за изпълнение на няколко команди на един ред датира от Windows XP, Windows 2000 и някои по-ранни версии на NT. (Поне 4.0, според един коментатор тук.)

Има доста други точки по този въпрос, които'ще намерите, скролвайки надолу по тази страница.

Следват исторически данни, за тези, които могат да ги намерят за образователни.

Преди това синтаксисът && е бил функция само на заместващия шел 4DOS, преди тази функция да бъде добавена в командния интерпретатор на Microsoft.

В Windows 95, 98 и ME вместо това се използваше символът pipe:

dir | echo foo

В MS-DOS 5.0 и по-късните версии, както и в някои по-ранни версии на командния интерпретатор в Windows и NT, (недокументираният) разделител на команди беше символ 20 (Ctrl+T), който тук ще представям с ^T.

dir ^T echo foo
Коментари (17)

Цитат от документацията:

Използване на множество команди и символи за условна обработка

Можете да изпълнявате няколко команди от един команден ред или скрипт, като използвате символи за условна обработка. Когато изпълнявате няколко команди със символи за условна обработка, командите вдясно от символа за условна обработка действат въз основа на резултатите от командата вляво от символа за условна обработка.

Например, може да искате да изпълните команда само ако предишната команда не успее. Или може да искате да изпълните команда само ако предишната команда е успешна.

Можете да използвате специалните символи, изброени в следващата таблица, за да предадете няколко команди.

  • & [...] команда1 & команда2 Използвайте, за да отделите няколко команди в един команден ред. Cmd.exe изпълнява първата команда, а след това и втората команда.
  • && [...] command1 && command2 Използва се за изпълнение на командата, следваща &&, само ако командата, предшестваща символа, е успешна. Cmd.exe изпълнява първата команда и след това изпълнява втората команда само ако първата команда е завършила успешно.
  • || [...] command1 || command2 Използвайте, за да стартирате командата, следваща ||, само ако командата, предхождаща ||, е неуспешна. Cmd.exe изпълнява първата команда, а след това изпълнява втората команда само ако първата команда не е завършила успешно (получава код за грешка, по-голям от нула).
  • ( ) [...] (команда1 & команда2) Използва се за групиране или влагане на няколко команди.
  • ; или , command1 parameter1;parameter2 Използвайте за разделяне на параметрите на командата.
Коментари (7)

Можете да използвате &, за да изпълнявате командите една след друга. Пример: c:\dir & vim myFile.txt

Коментари (0)