Bir Windows CMD konsolunda iki komut çalıştırmak istiyorum.
Linux'ta bunu şu şekilde yapardım
touch thisfile ; ls -lstrh
Windows'ta nasıl yapılır?
2000'den bu yana tüm Microsoft işletim sistemlerinde böyle ve bugün hala iyi:
dir & echo foo
İkinci komutun yalnızca ilk komut başarıyla çıktığında çalışmasını istiyorsanız:
dir && echo foo
Tek bir satırda birden fazla komut çalıştırmak için tek bir ve işareti (&) sözdizimi Windows XP, Windows 2000 ve bazı eski NT sürümlerine kadar uzanır. (Buradaki bir yorumcuya göre en azından 4.0).
Bu konuda, bu sayfayı aşağı doğru kaydırdığınızda bulacağınız birkaç nokta daha var.
Eğitici bulabilecekler için tarihsel veriler aşağıda yer almaktadır.
Bundan önce, && sözdizimi, bu özellik Microsoft komut yorumlayıcısına eklenmeden önce yalnızca kabuk ikamesi 4DOS'un bir özelliğiydi.
Windows 95, 98 ve ME'de bunun yerine boru karakterini kullanırsınız:
dir | echo foo
MS-DOS 5.0 ve sonrasında, komut yorumlayıcısının bazı eski Windows ve NT sürümlerinde, (belgelenmemiş) komut ayırıcı karakter 20 (Ctrl+T) idi ve ben burada ^T ile göstereceğim.
dir ^T echo foo
Belgelerden bir alıntı:
Çoklu komutların ve koşullu işleme sembollerinin kullanılması
Koşullu işleme sembollerini kullanarak tek bir komut satırından veya komut dosyasından birden fazla komut çalıştırabilirsiniz. Koşullu işleme sembolleriyle birden fazla komut çalıştırdığınızda, koşullu işleme sembolünün sağındaki komutlar, koşullu işleme sembolünün solundaki komutun sonuçlarına göre hareket eder.
Örneğin, bir komutu yalnızca önceki komut başarısız olursa çalıştırmak isteyebilirsiniz. Ya da bir komutu yalnızca bir önceki komut başarılı olduğunda çalıştırmak isteyebilirsiniz.
Birden fazla komut iletmek için aşağıdaki tabloda listelenen özel karakterleri kullanabilirsiniz.
& [...]
komut1 & komut2
Tek bir komut satırında birden fazla komutu ayırmak için kullanın. Cmd.exe ilk komutu ve ardından ikinci komutu çalıştırır.
&& [...]
komut1 && komut2
Sadece sembolden önceki komut başarılı olursa && komutunu takip eden komutu çalıştırmak için kullanın. Cmd.exe ilk komutu çalıştırır ve ardından yalnızca ilk komut başarıyla tamamlandıysa ikinci komutu çalıştırır.
|| [...]
command1 || command2
Yalnızca || öncesindeki komut başarısız olursa || sonrasındaki komutu çalıştırmak için kullanın. Cmd.exe ilk komutu çalıştırır ve ardından yalnızca ilk komut başarıyla tamamlanmadıysa (sıfırdan büyük bir hata kodu alırsa) ikinci komutu çalıştırır.
( ) [...]
(command1 & command2)
Birden fazla komutu gruplamak veya iç içe yerleştirmek için kullanın.
; veya ,
command1 parameter1;parameter2
Komut parametrelerini ayırmak için kullanın.