Jeg vil kjøre to kommandoer i en Windows CMD-konsoll.
I Linux ville jeg gjøre det slik
touch thisfile ; ls -lstrh
Hvordan gjøres det på Windows?
Som dette på alle Microsoft-operativsystemer siden 2000, og fortsatt bra i dag:
dir & echo foo
Hvis du vil at den andre kommandoen bare skal utføres hvis den første avsluttet vellykket:
dir && echo foo
Syntaksen med en enkelt ampersand (&) for å utføre flere kommandoer på en linje går tilbake til Windows XP, Windows 2000 og noen tidligere NT-versjoner. (4.0 i det minste, ifølge en kommentator her).
Det er ganske mange andre punkter om dette som du finner ved å bla nedover på denne siden.
Historiske data følger, for de som måtte synes det er lærerikt.
Før det var & & & syntaksen bare en funksjon i skallerstatningen 4DOS før den funksjonen ble lagt til i Microsofts kommandotolk.
I Windows 95, 98 og ME brukte man i stedet pipe-tegnet:
dir | echo foo
I MS-DOS 5.0 og senere, gjennom noen tidligere Windows- og NT-versjoner av kommandotolkeren, var (udokumentert) kommandoskilletegn 20 (Ctrl+T) som jeg vil representere med ^T her.
dir ^T echo foo
Et sitat fra dokumentasjonen:
- Bruke flere kommandoer og betingede behandlingssymboler *.
Du kan kjøre flere kommandoer fra en enkelt kommandolinje eller et enkelt skript ved hjelp av betingede behandlingssymboler. Når du kjører flere kommandoer med betingede behandlingssymboler, fungerer kommandoene til høyre for det betingede behandlingssymbolet basert på resultatene av kommandoen til venstre for det betingede behandlingssymbolet.
Det kan for eksempel være lurt å kjøre en kommando bare hvis den forrige kommandoen mislykkes. Eller du vil kanskje bare kjøre en kommando hvis den forrige kommandoen er vellykket.
Du kan bruke spesialtegnene som er oppført i følgende tabell for å sende flere kommandoer.
& [...]
kommando1 og kommando2
Brukes til å skille flere kommandoer på én kommandolinje. Cmd.exe kjører den første kommandoen, og deretter den andre kommandoen.
&& [...]
kommando1 amp;amp;amp; kommando2
Brukes for å kjøre kommandoen etter && bare hvis kommandoen foran symbolet er vellykket. Cmd.exe kjører den første kommandoen, og kjører deretter den andre kommandoen bare hvis den første kommandoen ble fullført.
|| [...]
kommando1 || kommando2
Brukes til å kjøre kommandoen etter || bare hvis kommandoen foran || mislykkes. Cmd.exe kjører den første kommandoen, og kjører deretter den andre kommandoen bare hvis den første kommandoen ikke ble fullført (mottar en feilkode større enn null).
( ) [...]
(kommando1 & kommando2)
Brukes til å gruppere eller neste flere kommandoer.
; eller ,
`kommando1 parameter1;parameter2``. Brukes for å skille kommandoparametere.