Відповіді:
Це цікаве рішення, якого я ніколи раніше не бачив. Дозвольте спробувати пояснити:
echo %path%
. Це буде друкувати всі каталоги на одному рядку, розділеному крапкою з комою ( ;
)%path:a=b%
яка замінить усі a
символиb
echo.
використовується для друку нового рядка&
використовується для розділення команд, наприклад, echo line1&echo line2
буде надруковано два рядки;
нічим, а потім надрукувати новий рядок». Я не можу знайти жодної документації з цього приводу, тому це лише моя інтерпретація. Чесно кажучи, я навіть не знав, що це можливо, але ви йдете. ОНОВЛЕННЯ Моя інтерпретація цього кроку, здається, відключена, і краще пояснюється wizzwizz4 .echo path
? використовуються %% для змінних?
set greeting=Hello
і потім echo %greeting%
. Конфузно, PATH
трапляється, як команда, так і змінна, тому введення команди path
або echo %path%
матиме однаковий результат.
$PATH
Наприклад , використовуються інші мови, наприклад, bash .
echo.
не є "командою для друку нового рядка". Це інтерпретатор команд Microsoft для Windows NT cmd
; і команда echo.
просто - друкувати елемент шляху, гарантуючи, що якщо елемент шляху порожній, він не перейде на інший функціоналecho
. Першим echo
справді має бути echo.
теж.
Для цього використовується підміна змінної командного рядка. %path:;=&echo.%
означає " %path%
, але замініть всі ;
s на &echo.
". Це означає, що set path=C:\Windows\System32;C:\Windows\;;C:\Python37;
:
echo %path:;=&echo.%
стає:
echo C:\Windows\System32&echo.C:\Windows\&echo.&echo.C:\Python37&echo.
Оскільки &
це роздільник команд, це еквівалентно:
echo C:\Windows\System32
echo.C:\Windows\
echo.
echo.C:\Python37
echo.
Завдяки химерності DOS Batch, echo.
ідентичний, за echo
винятком випадків, коли після цього нічого немає. Якщо це так, він просто нічого не друкує, замість того, щоб сказати вам ECHO
, увімкнено чи вимкнено. Це зробить вихід:
C:\Users\wizzwizz4> echo %path:;&echo.%
C:\Windows\System32
C:\Windows\
C:\Python37
C:\Users\wizzwizz4>
Дійсно, слід echo.%path:;=&echo.%
враховувати випадок, коли %PATH%
починається з а ;
, але ця команда все-таки досить розумна.
Потрапляючи в детальні деталі, насправді echo(
слід використовувати замість цього echo.
. Це тому, що echo.
можуть виникнути проблеми, коли у вас є названий файл echo
, і повільно, оскільки він повинен перевіряти диск ( %CD%
і я думаю, що все %PATH%
) кожен раз, коли він працює. (У мене немає копії Windows, тому я не можу перевірити її самостійно; %CD%
чи впливає %PATH%
наявність echo
файлу просто чи десь там echo.
, і що це робить?)
echo)
, але я не дуже пам’ятаю. ;-(
echo.
це той, про який люди циркулювали найбільше років тому. Саме той у багатьох книгах. Ефективність - це не проблема. Дурне поведінка, коли трапляються різні файли, є. Коли я написав 32-бітну заміну для 16-бітового cmd
в OS / 2, зламання імен команд у цих пунктуаційних символах, і ця вкрай нерегулярна поведінка розбору є однією з речей, які я навмисно не дублював, і які я ставив на документально перелік відмінностей. echodot
Натомість я зробив зовнішню команду, яку можна псевдонімом echo.
за бажанням.
echo(
це єдина безпечна версія.
echo.
може не працювати .