嘿,根据标题,当我尝试在 cmder 提示中创建带有等号的别名时, =
附带的内容被截断并且没有正确存储在user-aliases.cmd
文件中。
例如:
λ alias wifi=netsh wlan show profile $1 key=clear
将存储为:
wifi=netsh wlan show profile $1 ke
我猜$reasons
cmder 将y=clear
读作$something
值得评估,因此它与实际的别名存储过程切断了联系。 手动编辑文件很快就解决了这个问题。
我是否公然遗漏了我没有准确阅读的不断增长的Effin' 手册中的某些内容? 😛
看起来 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 方面的新手! :)
我可以确认您的更正解决了问题,谢谢! 我应该做PR吗?
我可以使用修复创建拉取请求。 感谢您确认它对您有用。
最有用的评论
看起来 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 (用你的例子,这似乎对我有用。