Windows: Komut isteminde çok satırlı komut nasıl belirtilir?


170

bir komutu bir sonraki satıra nasıl genişletebiliriz?

temelde linux için windows alternatif nedir

ls -l \
/usr/

burada sonraki satırdaki komutu genişletmek için ters eğik çizgi kullanıyoruz

Windows için eşdeğer nedir?


Kısa ve öz Q ve A, en şapka taşıma daha uzun bir arama için + 1 stackoverflow.com/questions/69068/...
mat wilkie

Yanıtlar:


297

Klavyemdeki hemen hemen her tuşu denedikten sonra:

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

C:\Users\Tim\Desktop>

Yani ^ anahtar gibi görünüyor.


13
Microsoft, PowerShell'de çalışmadığından kendi standartlarına uyamaz. ^ İçin PowerShell Eşdeğeri `` Yani C: \ Kullanıcılar \ Tim> cd '' >> Masaüstü sizi Tim'in Masaüstü \ 0 /
Ric Jafe

3
@RicJafe Neden olmalı? PowerShell tamamen ayrı! PS için eşdeğer anahtar `.
WhatIsHeDoing

Powershell'de ne olduğu hakkında bir fikrin var mı?
Ryan

3
@RyanSeanWattrus Aynı bilimsel yöntemi kullanarak: `` (l'accent grave)
Timbo

57

Windows Komut İsteminde ^, komut satırındaki bir sonraki karakterden kaçmak için kullanılır. ( \Dizelerde kullanılır gibi .) Komut satırında oldukları gibi kullanılması gereken karakterlerin önüne ^ öneki gelmelidir, bu nedenle satırsonu için çalışır.

Referans olarak, kaçması gereken karakterler (tırnak içinde değil, komut argümanları olarak belirtilmişse): &|()

Yani linux örneğinizin eşdeğeri ( Daha fazla? Komut istemi) olacaktır:

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

15
'^' karakteri satırdaki son karakter olmalıdır. Aksi takdirde sonunda SPACE varsa, çok satırlı komut çalışmaz.
Dmytro Ovdiienko

6

Düzeltme işareti karakteri işe yarar, ancak bir sonraki satır çift tırnak işareti ile başlamamalıdır. örneğin, bu çalışmaz:

C:\ ^
"SampleText" ..

Bir sonraki satıra çift tırnak işareti olmadan başlayın (geçerli bir örnek değil, sadece açıklamak için)


1

Bu soruya bir cevap aramak için geldiyseniz, ancak OP'nin tam anlamıyla değil , yani çok satırlı CMD'yi tek bir satırda nasıl çalıştıracaksınız, sizin için bir tür tehlikeli cevabım var.

Bunu aslında boru kullanan şeylerle kullanmaya çalışmak, örneğin findstr, oldukça sorunlu. Aynı şey elses ile uğraşmak için de geçerlidir . Ancak, bir toplu iş dosyası aracılığıyla değil, doğrudan CMD'den yürütmek için çok satırlı bir koşullu komut istiyorsanız, bunun iyi çalışması gerekir.

Doğrudan komut isteminde çalıştırmak istediğiniz bir toplu işte böyle bir şeyiniz olduğunu varsayalım:

@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"
    )
)

Şimdi, hat devam karatını ( ^) kullanabilir ve manuel olarak bu şekilde yazabilirsiniz, ancak uyarı, sıkıcıdır ve eğer karışıklık yaparsanız, tekrar yazmanın keyfini öğrenebilirsiniz.

Sadece ^parantez omuz silkme mekanizmaları sayesinde en azından yazıldığı gibi çalışmaz. Aslında karatları iki katına çıkarmanız gerekir:

@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"))

Bunun yerine, karat gerektirmeyen parçaların yanlış tarafından |, bir döngü / ifadenin devamı başına tek bir boru ( ) için değiştirerek kirli sinsi bir komut dosyası olabilirsiniz :

@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"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.