Привет, согласно заголовку, когда я пытаюсь в командной строке создать псевдоним со знаком равенства, то, что идет с =
усекается и неправильно сохраняется в файле user-aliases.cmd
.
Например:
λ alias wifi=netsh wlan show profile $1 key=clear
будет храниться как:
wifi=netsh wlan show profile $1 ke
Я предполагаю, что для $reasons
cmder читает y=clear
как $something
достойный оценки, и поэтому он отрезан от фактического процесса хранения псевдонимов. Редактирование файла вручную позволяет быстро решить эту проблему.
Я явно упускаю что-то в постоянно растущем Руководстве Эффина, которое я не прочитал точно? 😛
Похоже, что команда doskey (которая является оболочкой из псевдонима) обрабатывает ваш пример, так что это может быть ошибкой в скрипте alias.bat.
Вы можете отлаживать, изменив alias.bat и изменив первую строку на <strong i="6">@echo</strong> on
. Глядя на это сейчас, я вижу, что есть момент, когда сценарий разбивает строку псевдонима, используя "=" в качестве разделителя, и предполагает, что в строке будет только один =.
Вот исправление: в alias.bat найдите строку, в которой написано ":: validate alias", и в следующей строке замените '2' на '*', например:
for / f "delims == tokens = 1, * usebackq" %% G in ( echo "%_x%"
) do (
Кажется, это работает для меня с вашим примером.
Спасибо, что подробно объяснили проблему, очень полезно для меня, так как я новичок в CMD! :)
Я могу подтвердить, что ваше исправление устранило проблему, спасибо! Стоит ли делать пиар?
Я могу создать запрос на перенос с исправлением. Спасибо, что подтвердили, что это работает для вас.
Самый полезный комментарий
Похоже, что команда doskey (которая является оболочкой из псевдонима) обрабатывает ваш пример, так что это может быть ошибкой в скрипте alias.bat.
Вы можете отлаживать, изменив alias.bat и изменив первую строку на
<strong i="6">@echo</strong> on
. Глядя на это сейчас, я вижу, что есть момент, когда сценарий разбивает строку псевдонима, используя "=" в качестве разделителя, и предполагает, что в строке будет только один =.Вот исправление: в alias.bat найдите строку, в которой написано ":: validate alias", и в следующей строке замените '2' на '*', например:
for / f "delims == tokens = 1, * usebackq" %% G in (
echo "%_x%"
) do (Кажется, это работает для меня с вашим примером.