как продлить команду до следующей строки?
в основном, что альтернатива Windows для Linux
ls -l \
/usr/
здесь мы используем обратную косую черту для расширения команды на следующей строке
Что эквивалентно для Windows?
как продлить команду до следующей строки?
в основном, что альтернатива Windows для Linux
ls -l \
/usr/
здесь мы используем обратную косую черту для расширения команды на следующей строке
Что эквивалентно для Windows?
Ответы:
Попробовав практически все клавиши на моей клавиатуре:
C:\Users\Tim>cd ^
Mehr? Desktop
C:\Users\Tim\Desktop>
Кажется, это ключ ^.
В ^
командной строке Windows используется для экранирования следующего символа в командной строке. (Like \
используется в строках.) Символы, которые необходимо использовать в командной строке, должны иметь префикс ^ к ним, поэтому он работает для новой строки.
Для справки символы, которые необходимо экранировать (если они указаны в качестве аргументов команды, а не в кавычках): &|()
Таким образом, эквивалентом вашего примера Linux будет (« Больше?» - это приглашение):
C:\> dir ^
More? C:\Windows
Если вы пришли сюда в поисках ответа на этот вопрос, но не совсем так, как имел в виду ОП, то есть как вы заставляете многострочную CMD работать в одной строке, у меня для вас есть опасный ответ.
Попытка использовать это с вещами, которые фактически используют трубопровод, как, скажем findstr
, довольно проблематично. То же самое касается борьбы с else
с. Но если вы просто хотите, чтобы многострочная условная команда выполнялась непосредственно из CMD, а не через пакетный файл, это должно работать хорошо.
Допустим, у вас есть что-то вроде этого в пакете, который вы хотите запустить непосредственно в командной строке:
@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"
)
)
Теперь вы можете использовать carat ( ^
) для продолжения строки и вручную напечатать его, как это, но, предупреждающе, это утомительно, и если вы все испортите, вы можете научиться радости от того, что все это напечатаете снова.
Ну, это не сработает только ^
благодаря тому, что экранирующие механизмы внутри скобок пожимают плечами. По крайней мере, не так, как написано. На самом деле вам нужно будет удвоить карат, например, так:
@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"))
Вместо этого вы можете быть грязным подлым сценаристом с неправильной стороны дорожек, который не нуждается в каратах, заменяя их на один pipe ( |
) за продолжение цикла / выражения:
@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"