स्क्रीन पर परिणाम के बिना बैच कमांड चलाना


1

मैं एक बैच फ़ाइल लिखते समय एक समस्या में चल रहा हूं। मुझे आश्चर्य है कि अगर किसी के पास मेरे लिए कोई समाधान हो सकता है। यह फ़ाइल बहुत लंबी है इसलिए मैं कम कोड लेखन करने का तरीका जानने की कोशिश कर रहा हूं। मेरे पास कई प्रतिध्वनि संदेश हैं जो कुछ सेकंड के लिए प्रदर्शित होते हैं और जब फ़ाइल अगली स्क्रीन / कोड पर चलती है तो गायब हो जाती है। मुझे पता है कि मैं इसे कुछ इस तरह लिख सकता हूं ...

@echo off
echo Message
ping localhost -n 3 >nul
cls

लिख रहे हैं ping localhost -n 3 >nul हर बार जब मुझे देरी होती है तो समय लगता है। मुझे पता है कि मैं कॉपी और पेस्ट कर सकता था लेकिन यह मेरी स्थिति के लिए भी आदर्श नहीं है। मुझे एक चर को बराबर करने का विचार था ping localhost -n 3 >nul के रूप में लिखा है,

set delay3=ping localhost -n 3 >nul

यह मुझे सिर्फ टाइप करने की अनुमति देगा %delay3% समय बचाने के लिए। मैंने पाया कि यह कार्यात्मक रूप से ठीक काम करता है लेकिन इसका साइड इफेक्ट है। जब इस तरह से लिखा,

@echo off
set delay3=ping localhost -n 3 >nul
echo Message
%delay3%
cls

मेरी बैच फ़ाइल स्क्रीन पर सभी पिंग डेटा को प्रदर्शित करेगी, भले ही मैंने लिखा हो @echo off मेरी स्क्रिप्ट की शुरुआत में। बस स्पष्ट होने के लिए, यह डेटा केवल स्क्रीन पर दिखाता है जब मैं उपयोग करता हूं %delay3% कोड का संस्करण। क्या किसी को पता है कि पिंग डेटा को स्क्रीन पर दिखाने का कोई तरीका नहीं है जब वह इस तरह से कोडिंग करता है?

जवाबों:


1

इस तरह से कोडिंग करने पर मैं स्क्रीन पर पिंग डेटा कैसे नहीं दिखा सकता हूं?

समस्या आपके साथ है set आदेश:

set delay3=ping localhost -n 3 >nul

>nul (आउटपुट को फेंकने के लिए उपयोग किया जाता है) पर लागू होता है set आदेश और चर में संग्रहीत नहीं है।

दूसरी ओर:

set "delay3=ping localhost -n 3 >nul"

जो चाहता है, करता है।

सही बैच फ़ाइल:

@echo off
set "delay3=ping localhost -n 3 >nul"
echo Message
%delay3%
cls
rem do other stuff
endlocal

उदाहरण आउटपुट:

> test
Message

>

आगे की पढाई

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.