2012-01-19 15 views
96

यूनिक्स में, हम कई आदेशों एक पंक्ति में इस तरह रख सकते हैं:एक Windows बैच फ़ाइल में एक पंक्ति पर एकाधिक आदेशों

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

$ date ; ls -l ; date 

मैं Windows में एक ऐसी ही बात करने की कोशिश की

लेकिन यह समय मुद्रित किया गया और dir कमांड निष्पादित नहीं करता है।

मैं इसे कैसे प्राप्त कर सकता हूं?

+3

संभावित डुप्लिकेट [? विंडोज अध्यक्ष एवं प्रबंध निदेशक में एक पंक्ति में दो आदेशों को चलाने के लिए] (http://stackoverflow.com/questions/ 8055371/कैसे-टू-रन-दो-कमांड-इन-वन-लाइन-इन-विंडोज-सीएमडी) – IvanRF

उत्तर

155

उपयोग:

echo %time% & dir & echo %time% 

यह वह जगह है, स्मृति, सेमी-कोलन विभाजक के बराबर bash में और अन्य Unixy गोले से।

&& (या ||) जो केवल अगर पहले सफल रहा है (या विफल) दूसरा आदेश है, लेकिन एक एम्परसेंड & कार्यान्वित तुम यहाँ क्या खोज रहे है भी नहीं है।


यह आपको एक ही समय देने की संभावना है, हालांकि पर्यावरण चर के निष्पादन के बजाय पढ़ने पर मूल्यांकन का मूल्यांकन किया जाता है।

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

कमांड लाइन से आवश्यक है कि:

आप देरी विस्तार को चालू करके इस दौर मिल सकती है। आप एक स्क्रिप्ट के अंदर यह कर रहे हैं, तो आप सिर्फ setlocal उपयोग कर सकते हैं:

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

उत्तर के लिए धन्यवाद। समस्या यह आंशिक रूप से काम करता है। पहला और आखिरी% समय% उसी समय प्रिंट करता है जब कमांड (मध्य में) को पूरा करने में कम से कम 40 सेकंड लगते हैं। (मैं डीआईआर कमांड के बजाए अपनी स्क्रिप्ट चलाता हूं) – Raghuram

+1

ऐसा इसलिए है क्योंकि कमांड _read_ के बजाय पर्यावरण चर का मूल्यांकन किया जाता है निष्पादित से। मैं जवाब अपडेट करूंगा। – paxdiablo

+0

फिर भी समस्या बनी रहती है। स्क्रिप्ट कोड 1 से बाहर निकल रही है। लेकिन फिर भी दूसरी गूंज एक ही समय प्रिंट करती है यह ओप 12: 57: 56.93 एक थ्रेड निकल गया जबकि 3 धागे चल रहे थे। 12: 57: 56.93 – Raghuram

संबंधित मुद्दे