2011-12-13 15 views

उत्तर

130

इसका मतलब संबंधित कमांड को आउटपुट नहीं करना है। निम्नलिखित दो बैच फ़ाइलों की तुलना करें:

@echo foo 

और

echo foo 

पूर्व है केवल foo आउटपुट के रूप में, जबकि दूसरा प्रिंट

H:\Stuff>echo foo 
foo 

(यहाँ, कम से कम)। जैसा कि चलाया जा सकता है कमांड भी दिखाई दे सकता है।

echo off इसे पूर्ण बैच फ़ाइल के लिए बंद कर देगा। हालांकि, echo off कॉल स्वयं भी दिखाई देगी। यही कारण है कि आप बैच फ़ाइलों की शुरुआत में @echo off देखते हैं। और प्रतिध्वनि आदेश को बंद करें इसे बंद करने के आदेश को प्रतिबिंबित न करें।

उस रेखा को हटाने (या इसे टिप्पणी करने) अक्सर जटिल बैच फ़ाइलों में एक सहायक डिबगिंग टूल होता है क्योंकि आप देख सकते हैं कि त्रुटि संदेश से पहले क्या चल रहा है।

6

यह डॉस से अर्थ प्राप्त करता है। @:

डॉस संस्करण 3.3 और बाद में, बैच कमांड की गूंज छुपाता है। आदेश द्वारा उत्पन्न कोई भी आउटपुट प्रतिबिंबित होता है।

इसके बिना, आप echo off कमांड का उपयोग करके प्रतिध्वनि आदेश को बंद कर सकते हैं, लेकिन वह आदेश पहले प्रतिबिंबित किया जाएगा।

9

@ उस आदेश के लिए गूंज अक्षम करता है। इसके बिना, echo start eclipse.exe लाइन start eclipse.exeऔरecho start eclipse.exe लाइन दोनों को मुद्रित करेगी।

echo off बाय-डिफॉल्ट कमांड इकोइंग बंद कर देता है।

तो @echo off चुपचाप आदेश गूंज, और केवल उत्पादन बैच लेखक लिखे जाने की वास्तव में लिखा है इरादा बंद हो जाती है।

12

इसका मतलब है "मानक आउटपुट में आदेश गूंज नहीं है"।

बल्कि अजीब,

echo off 

उत्पादन के लिए echo off भेज देंगे! तो,

@echo off 

सेट इस स्वचालित गूंज व्यवहार बंद है - और यह भविष्य की सभी आदेशों के लिए भी बंद हो जाता है।

स्रोत: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true

5

@ शामिल करने के लिए एक और उपयोगी समय आ गया है जब आप कमांड लाइन में FOR का उपयोग करें। कमांड प्रॉम्प्ट, ECHO आदेश, और ECHO आदेश का परिणाम:

FOR %F IN (*.*) DO ECHO %F 

पिछला लाइन हर फ़ाइल के लिए शो : उदाहरण के लिए। इस प्रकार:

FOR %F IN (*.*) DO @ECHO %F 

बस ECHO कमांड का परिणाम दिखाया गया है।

+2

कोई उत्तर नहीं। – PsychoData

+0

@PsychoData: यह मजाकिया है कि आपने एकमात्र उत्तर कम कर दिया है जो कि अन्य 4 उत्तरों के लिए उपयोगी जानकारी प्रदान करता है, थोड़ी देर पहले, पहले से ही इस प्रश्न का उत्तर दिया गया है ... – Aacini

+0

मैंने डाउनवॉट किया क्योंकि यह नहीं था अपने प्रश्न का उत्तर। आप @ क्या करता है इसका स्पष्टीकरण भी नहीं देते हैं। यदि आपके पास उपयोग के अच्छे उदाहरण हैं, तो महान, लेकिन यह अभी भी उनके प्रश्न का उत्तर नहीं है। आपको यह भी पता नहीं हो सकता कि मैंने यह भी बताया कि यह क्या करता है और यह कहां से आता है, के शर्त के साथ जवाब भी उखाड़ फेंक दिया। मैंने किसी कारण के लिए सिर्फ डाउनवोट नहीं किया था। आपका "उत्तर" एक जवाब नहीं है। यह कुछ हद तक संबंधित बयान है। – PsychoData

2

आप शामिल कर सकते हैं एक इस तरह 'scriptBlock' में @:

@(
    echo don't echoed 
    hostname 
) 
echo echoed 

और विशेष रूप से ऐसा नहीं करते हैं कि :)

for %%a in ("@") do %%~aecho %%~a 
2

डिफ़ॉल्ट रूप से, एक बैच फ़ाइल अपने आदेश में यह रूप में प्रदर्शित करेगा रन। इस पहले कमांड का उद्देश्य @echo इस प्रदर्शन को बंद करना है। आदेश "इको ऑफ" कमांड को "इको ऑफ" कमांड को छोड़कर, संपूर्ण स्क्रिप्ट के लिए डिस्प्ले को बंद कर देता है। सामने "साइन" चिह्न "@" कमांड को स्वयं भी लागू होता है।

+2

मैं आपकी पोस्ट में किसी अन्य या बेहतर जानकारी को नहीं देख सकता, जैसे कि अन्य 5 साल की पोस्ट में। – jeb

+0

आप अपने प्रयासों की इतनी बर्बादी बनाते हैं। दया –

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