jak rozszerzyć polecenie do następnej linii?
w zasadzie jaka jest alternatywa dla Windowsa dla Linuksa
ls -l \
/usr/
tutaj używamy odwrotnego ukośnika, aby rozszerzyć polecenie w następnej linii
jaki jest odpowiednik dla okien?
jak rozszerzyć polecenie do następnej linii?
w zasadzie jaka jest alternatywa dla Windowsa dla Linuksa
ls -l \
/usr/
tutaj używamy odwrotnego ukośnika, aby rozszerzyć polecenie w następnej linii
jaki jest odpowiednik dla okien?
Odpowiedzi:
Po wypróbowaniu prawie każdego klawisza na mojej klawiaturze:
C:\Users\Tim>cd ^
Mehr? Desktop
C:\Users\Tim\Desktop>
Więc wydaje się, że jest to klawisz ^.
W ^
wierszu poleceń systemu Windows znak jest używany do zmiany znaczenia następnego znaku w wierszu poleceń. (Podobnie jak \
jest używane w łańcuchach). Znaki, które muszą być użyte w wierszu poleceń tak jak są, powinny mieć przedrostek ^, dlatego właśnie działa to w przypadku nowej linii.
Dla porównania, znaki, które wymagają znaku ucieczki (jeśli są podane jako argumenty poleceń, a nie w cudzysłowach) to: &|()
Tak więc odpowiednikiem twojego przykładu linuxa byłoby ( znak zachęty Więcej? ):
C:\> dir ^
More? C:\Windows
Jeśli przyszedłeś tutaj, szukając odpowiedzi na to pytanie, ale nie dokładnie tak, jak oznaczał to OP, tj. Jak sprawić, aby wieloliniowy CMD działał w jednej linii, to mam dla Ciebie niebezpieczną odpowiedź.
Próba użycia tego do rzeczy, które faktycznie używają rur, takich jak powiedz, findstr
jest dość problematyczna. To samo dotyczy radzenia sobie z else
s. Ale jeśli chcesz, aby wielowierszowe polecenie warunkowe było wykonywane bezpośrednio z CMD, a nie przez plik wsadowy, powinno to działać dobrze.
Powiedzmy, że masz coś takiego w partii, którą chcesz uruchomić bezpośrednio w wierszu poleceń:
@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"
)
)
Teraz możesz użyć linii-kontynuacji carat ( ^
) i ręcznie wpisać to w ten sposób, ale ostrzeżenie, jest to żmudne i jeśli się pomylisz, możesz nauczyć się radości z wpisywania wszystkiego od nowa.
Cóż, nie zadziała tylko ^
dzięki uciekającym mechanizmom wewnątrz nawiasów wzruszających ramionami Przynajmniej nie tak, jak napisano. Właściwie musiałbyś podwoić karaty w następujący sposób:
@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"))
Zamiast tego możesz być brudnym, podstępnym skrypciarzem po złej stronie ścieżek, które nie potrzebują karatów, zamieniając je na pojedynczą potokę ( |
) na kontynuację pętli / wyrażenia:
@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"