Próbuję wykonać polecenie cmd.exe
z podziałem wiersza lub nową linią jako częścią polecenia, jak poniżej:
command -option:text
whatever
Ale każda nowa linia wykonuje polecenie, zamiast kontynuować polecenie w następnym wierszu.
Jak więc wprowadzić nowy znak linii lub utworzyć polecenie wieloliniowe w cmd.exe?
windows
command-line
newlines
Rudimenter
źródło
źródło
Odpowiedzi:
Użyj
^
postaci jako ucieczki:Zakładam, że używasz cmd.exe z Windows XP lub podobnego. To nie jest rzeczywisty DOS. Jeśli używasz rzeczywistego DOS (MS-DOS, Win3.1, Win95, Win98, WinME), to nie wierzę, że istnieje ucieczka dla nowych linii. Będziesz musiał uruchomić niestandardową powłokę. cmd.exe wyświetli monit o „Więcej?” za każdym razem, gdy naciśniesz klawisz Enter
^
na końcu linii, po prostu ponownie naciśnij klawisz Enter, aby faktycznie uciec / osadzić nową linię.źródło
SHUTDOWN.EXE
polecenia. Skończyło się na użyciu czegoś takiego:shutdown -s -t 900 -c "foo bar"^
> Więcej?"baz"^
> Więcej?"test that."
Zadziałało.Używaj kodów Alt z klawiaturą numeryczną
Ten znak przejścia do wiersza można wprowadzić jako kod Alt w interfejsie CLI za pomocą klawiatury numerycznej: przy włączonym NumLock przytrzymaj klawisz ALT i wpisz 10 na klawiaturze numerycznej przed zwolnieniem klawisza ALT. Jeśli potrzebujesz również CR, wpisz je z kombinacją Alt + 13, a następnie Alt + 10:
♪◙
Uwaga: to nie zadziała w pliku wsadowym.
Przykładowy przypadek użycia:
Próbujesz odczytać zmienne środowiskowe% PATH% lub% CLASSPATH%, aby uzyskać szybki przegląd tego, co tam jest i w jakiej kolejności - ale zwrócona ściana tekstu
path
jest nieczytelna. To jest coś, co możesz szybko wpisać:Edytować:
Dodano
>con
obejście, które Brent Rittenhouse odkrył dla nowszych wersji cmd.exe, w którym oryginalna metoda przestała działać.źródło
e2 99 aa e2 97 99
przeszedłem. Jakiś punkt kodu Unicode? Widzę jednak, że znaki pojawiają się w linii poleceń. Jakieś sugestie?Use legacy console
wyboru. Ale wygląda naprawdę źle na monitorze o wysokiej rozdzielczości.(echo New-line detected rigghhhtt ◙^<--- HERE!) > CON
otaczający nawias jest opcjonalny. Oto bardziej solidny przykład tego, co możesz z tym zrobić (ORAZ zwroty karetki, które teraz działają i całkowicie niezależnie!): I.imgur.com/qqN37PH.pngNie wiem, czy to zadziała dla ciebie, ale poprzez wstawienie & echo (ważna jest następująca spacja). pomiędzy każdą instrukcją, którą chcesz w nowym wierszu. Próbowałem tego tylko z prostym plikiem nietoperzy
Następnie zapisałem to jako testNewLines.bat
Więc potem linia cmd
Powodowało to echo z powrotem
pierwsza linia
druga linia
Trzecia linia
źródło
Rozwijając odpowiedź Amita ( /superuser//a/1132659/955256 ) Znalazłem sposób na zrobienie tego w dowolnej czcionce BEZ korzystania ze starszej konsoli.
Wszystko, co musisz zrobić, to po prostu wyśledzić linię ze znakami alt-10, a następnie przekierować ją do
con
i to zadziała!Na przykład biorąc pod uwagę:
edytuj: Zabawne, wydaje się, że możesz umieścić przekierowanie na początku tak:
Dziwne, co?
Otrzymasz wynik:
(Nawias otaczający jest opcjonalny).
Oto bardziej niezawodny przykład tego, co można zrobić za pomocą ORAZ zwrotów karetki, które teraz działają i całkowicie niezależnie !:
Co najlepsze, działa to również w przypadku przekierowania do pliku!
(po prostu zmień
> CON
na> desired_output_file.txt
Cieszyć się!
źródło
Dane wyjściowe ^ można zapisać
przykład:
; wynik:
źródło
Uważam, że nie można tego zrobić z poziomu
cmd.exe
powłoki systemu Windows . ( To nie jest DOS. )Nie potrzebujesz do tego pełnej „niestandardowej powłoki”. Musisz tylko napisać coś takiego (przykład w Pythonie ):
Lub Ruby:
Widzisz, to nie jest takie trudne.
źródło