2012-01-19 27 views
96

Unix, biz böyle tek bir satırda birden komutları koyabilirsiniz:Çoklu komutlar

> echo %TIME% ; dir ; echo %TIME 
:

$ date ; ls -l ; date 

Windows'un benzer bir şeyi denedik

Ancak zaman basıldı ve dir komutunu çalıştırmıyor.

Bunu nasıl başarabilirim?

+3

Olası kopyalar [?, Windows CMD tek satırda iki komutları çalıştırın Nasıl] (http://stackoverflow.com/questions/ 8055371/nasıl çalıştırılır-iki-komutları-in-one-line-in-windows-cmd) – IvanRF

cevap

155

Kullanım:

echo %time% & dir & echo %time% 

Bu, bash yarı kolon ayırıcı eşdeğer hafıza ve diğer UNIXy kabukları.

sadece ilk başarılı (veya başarısız) ikinci komutu, ancak tek ve işareti & çalıştırır && (veya ||) Burada aradığınızı olduğunu da var. ortam değişkenleri eğilimindedir beri ancak sana aynı zaman vermek olasıdır


okumak yerine yürütmek üzerine değerlendirilecek.

Sen gecikmeli genişleme açarak bu yuvarlak alabilirsiniz: Komut satırından ihtiyaç duyulan

pax> cmd /v:on /c "echo !time! & ping 127.0.0.1 >nul: & echo !time!" 
15:23:36.77 
15:23:39.85 

. Eğer bir komut dosyası içinde yapıyoruz, sadece setlocal kullanabilirsiniz:

@setlocal enableextensions enabledelayedexpansion 
@echo off 
echo !time! & ping 127.0.0.1 >nul: & echo !time! 
endlocal 
ait
+0

Cevabınız için teşekkürler. Sorun kısmen çalışıyor. ilk ve son% zaman% komutu, komutun (ortada) tamamlaması için 40 saniyeyi alsa bile yazdırır. (Komut komutunu dir komutu yerine çalıştırırım) – Raghuram

+1

Bunun nedeni, ortam değişkenlerinin, komutun _read_ olması durumunda değerlendirilmesidir. yerine getirilir. Cevabı güncelleyeceğim. – paxdiablo

+0

Yine de sorun devam ediyor. Komut, kod 1 ile çıkıyor. Fakat yine de ikinci eko aynı anda basıyor Bu op 12: 57: 56.93 3 iş parçacığı çalışırken çıkarılan bir iş parçacığı. 12: 57: 56.93 – Raghuram

İlgili konular