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