विंडोज: कमांड प्रॉम्प्ट पर मल्टीलाइन कमांड कैसे निर्दिष्ट करें?


170

हम अगली पंक्ति में एक कमांड कैसे बढ़ाते हैं?

मूल रूप से क्या विंडोज लिनक्स के लिए वैकल्पिक है

ls -l \
/usr/

यहाँ हम अगली लाइन पर कमांड का विस्तार करने के लिए बैकस्लैश का उपयोग करते हैं

विंडोज़ के लिए बराबर क्या है?


लघु और संक्षिप्त क्यू एंड ए, पर कैरट से निपटने के और अधिक विस्तारित अन्वेषण के लिए +1 stackoverflow.com/questions/69068/...
मैट Wilkie

जवाबों:


295

मेरे कीबोर्ड पर लगभग हर कुंजी आज़माने के बाद:

C:\Users\Tim>cd ^
Mehr? Desktop

C:\Users\Tim\Desktop>

तो यह ^ कुंजी लगता है।


13
Microsoft अपने स्वयं के मानकों का पालन नहीं कर सकता है इसलिए यह PowerShell में काम नहीं करता है। ^ के लिए पावरस्ले समतुल्य है `तो C: \ Users \ Tim> cd` >> डेस्कटॉप आपको टिम के Desktop \ 0 /
रिक जॅफ

3
@RicJafe इसे क्यों करना चाहिए? PowerShell पूरी तरह से अलग है! PS के लिए समकक्ष कुंजी `है।
WhatIsHeDoing

इस पर कोई विचार क्या यह शक्तियां में है?
रयान

3
@RyanSeanWattrus उसी वैज्ञानिक विधि का उपयोग करते हुए: `(l'accent कब्र)
टिम्बो

57

विंडोज कमांड प्रॉम्प्ट ^में कमांड लाइन पर अगले वर्ण से बचने के लिए उपयोग किया जाता है। (जैसे \स्ट्रिंग्स में उपयोग किया जाता है।) जिन वर्णों को कमांड लाइन में उपयोग करने की आवश्यकता होती है, क्योंकि उनके पास एक ^ उनके लिए उपसर्ग होना चाहिए, इसलिए यही नई पंक्ति के लिए काम करता है।

उन वर्णों के संदर्भ में जिन्हें भागने की आवश्यकता है (यदि आदेश के रूप में निर्दिष्ट किया गया है और उद्धरण के भीतर नहीं): &|()

तो आपके linux उदाहरण के समतुल्य होगा ( अधिक? एक संकेत होने के नाते):

C:\> dir ^
More? C:\Windows

15
'^' वर्ण लाइन में अंतिम वर्ण होना चाहिए। अन्यथा यदि आपके पास अंत में स्पेस है, तो मल्टीलाइन कमांड काम नहीं करता है।
Dmytro Ovdiienko

6

कैरट चरित्र काम करता है, हालांकि अगली पंक्ति को दोहरे उद्धरण चिह्नों से शुरू नहीं करना चाहिए। जैसे यह काम नहीं करेगा:

C:\ ^
"SampleText" ..

अगली पंक्ति को दोहरे उद्धरणों के बिना शुरू करें (उदाहरण के लिए नहीं, सिर्फ उदाहरण के लिए)


1

यदि आप इस प्रश्न का उत्तर ढूंढने यहां आए हैं, लेकिन ओपी का मतलब बिल्कुल नहीं है , तो आप एक पंक्ति में काम करने के लिए मल्टी-लाइन सीएमडी कैसे प्राप्त करेंगे , मेरे पास आपके लिए एक तरह का खतरनाक उत्तर है।

इसे उन चीजों के साथ उपयोग करने की कोशिश करना जो वास्तव में पाइपिंग का उपयोग करते हैं, जैसे कहना findstrकाफी समस्याग्रस्त है। वही elseएस के साथ काम करने के लिए जाता है । लेकिन अगर आप बस मल्टी-लाइन सशर्त कमांड को सीधे सीएमडी से निष्पादित करना चाहते हैं और बैच फ़ाइल के माध्यम से नहीं, तो यह अच्छी तरह से काम करना चाहिए।

मान लें कि आपके पास बैच में ऐसा कुछ है जिसे आप सीधे कमांड प्रॉम्प्ट में चलाना चाहते हैं:

@echo off
for /r %%T IN (*.*) DO (
    if /i "%%~xT"==".sln" (
        echo "%%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file
        echo Dumping SLN file contents
        type "%%~T"
    )
)

अब, आप लाइन-निरंतरता कैरेट ( ^) का उपयोग कर सकते हैं और इसे मैन्युअल रूप से इस तरह टाइप कर सकते हैं, लेकिन चेतावनी, यह थकाऊ है और यदि आप गड़बड़ करते हैं तो आप इसे फिर से टाइप करने की खुशी सीख सकते हैं।

खैर, यह सिर्फ साथ काम नहीं करेंगे ^कोष्ठकों के अंदर तंत्र से बचने के लिए धन्यवाद कंधे उचकाने की क्रिया कम से कम के रूप में लिखा नहीं। आपको वास्तव में कैरेट को दोगुना करना होगा जैसे:

@echo off ^
More? for /r %T IN (*.sln) DO (^^
More? if /i "%~xT"==".sln" (^^
More? echo "%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file^^
More? echo Dumping SLN file contents^^
More? type "%~T"))

इसके बजाय, आप पटरियों के गलत साइड से एक गंदे डरपोक हो सकते हैं, जिसे |लूप / एक्सप्रेशन की निरंतरता के लिए एकल पाइप ( ) के लिए स्वैप करके किसी कैरेट की आवश्यकता नहीं है :

@echo off
for /r %T IN (*.sln) DO if /i "%~xT"==".sln" echo "%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file | echo Dumping SLN file contents | type "%~T"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.