बैच फ़ाइल में साइन (@) क्या है और यह क्या करता है?


101

खिड़कियों / डॉस बैच स्क्रिप्टिंग के साथ दूर से परिचित एक व्यक्ति इस लाइन को पहचान लेगा:

@echo off

कई-कई दिनों तक, मैं इस भावना के साथ खुश था कि बैच के शीर्ष पर लिखे जाने का मतलब @क्या echo offहै और यही है।

हालाँकि, हाल ही में मैं इस तरह से एक पंक्ति में आया हूँ :

@php foo bar

और इस तरह एक और लाइन :

@call \\network\folder\batch.bat

इसने मेरे संदेह को प्रबल कर दिया है जो कि @केवल echoमोड स्विचिंग से अधिक है । हालाँकि @, Windows XP में सूचीबद्ध नहीं है : कमांड-लाइन संदर्भ AZ जो मैं एक संदर्भ के रूप में उपयोग करने की कोशिश करता हूं और इस प्रकार मुझे यकीन नहीं है कि इस पर निश्चित जानकारी कैसे मिलेगी:

@बैच में साइन क्या है , इसके लिए शब्दावली क्या है और यह क्या करता है?


3
इस्माइल जवाब में जोड़ने के लिए कुछ नहीं। लेकिन सिर्फ भविष्य के संदर्भों के लिए, उत्तर "कमांड-लाइन संदर्भ AZ" दस्तावेज़ीकरण Remarksमें echoकमांड के अनुभाग के तहत शामिल है ।
एमसी एनडी

2
@MCND मैं देख रहा हूँ, धन्यवाद! नहीं पता था कि यह गूंज-विशिष्ट था ... ठीक है, मुझे लगता है कि मैंने echoबैच के महत्व को गलत समझा । यहाँ प्रतिध्वनि # टिप्पणी की कड़ी है ।
n611x007

2
मैंने सुना है कि इसे "स्क्वील" कहा जाता है, लेकिन मेरे पास केवल इसके लिए महत्वपूर्ण सबूत हैं।
RustyTheBoyRobot

जवाबों:


152

प्रतीक पर - @

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

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

echo verbose
@echo less verbose
pause

3
बिना किसी के ऑन-साइट स्पष्टीकरण के लिए यह स्वीकार कर लिया ... किसी भी प्रॉम्प्ट पर निष्पादन के साथ जुड़ा हुआ है , और कमांड प्रोसेसर की तरह (क्रियात्मकता) और अंतरिक्ष के बारे में बताने के लिए। :) अच्छा परीक्षण बैच, भी!
n611x007

7
जाहिरा तौर पर यह सभी के लिए स्पष्ट है, लेकिन मुझे नहीं पता था कि यह केवल एक .batफ़ाइल से निष्पादित होने पर काम करता है , अर्थात यह कमांड लाइन से सीधे काम नहीं करता है।
doABarrelRoll721

1
When "echo" is set to "off" it is not necessary to use "@" because setting "echo" to "off" causes this behavior to become automatic. यह सच है। मैंने यह भी पाया है कि इससे अवांछित दुष्प्रभाव हो सकते हैं। उदाहरण के लिए - किसी कारण के लिए @copyएक clip < file.txt & pauseकमांड का उपयोग करके मेरे क्लिपबोर्ड को पाठ की प्रतिलिपि बनाने का कारण बनता है 1 file copied
डॉग

बुरी बात यह है कि मैं इस पर आधिकारिक दस्तावेज नहीं कर सकता हूँ!
रॉबर्ट

-1

न केवल शुरुआत में रखा गया "at" चिन्ह कमांड को छिपाता है, इसका उपयोग टेक्स्ट फाइल में स्टोर किए गए कमांड आर्गुमेंट्स को जोड़ने के लिए भी किया जा सकता है। वाक्यविन्यास exe @ कमांड है (यदि मुझे सही याद है)


3
नहीं, यदि आप किसी चीज को निष्पादित करने की कोशिश करते हैं जैसे myExe@myCommandsवह विफल हो जाती हैis not recognized as an internal or external command
jeb

@ जेब, जब आप @प्रतीक के चारों ओर रिक्त स्थान रखते हैं तो क्या होता है ? मैं इसे काम करने के लिए नहीं मिल सकता, लेकिन मैंने इसे बैच फ़ाइलों में इस्तेमाल किया है ...
jdk1.0
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.