Hola, según el título, cuando intento en el indicador de cmder crear un alias con un signo igual, lo que viene con =
se trunca y no se almacena correctamente en el archivo user-aliases.cmd
.
Por ejemplo:
λ alias wifi=netsh wlan show profile $1 key=clear
se almacenará como:
wifi=netsh wlan show profile $1 ke
Supongo que para $reasons
cmder lee y=clear
como $something
digno de evaluación y, por lo tanto, está cortado del proceso de almacenamiento de alias real. La edición manual del archivo soluciona rápidamente este problema.
¿Me estoy perdiendo algo en el creciente Manual de Effin ' que no he leído con precisión? 😛
Parece que el comando doskey (cuyo alias envuelve) maneja su ejemplo, por lo que esto puede ser un error en el script alias.bat.
Puede depurar modificando alias.bat y cambiando la primera línea a <strong i="6">@echo</strong> on
. Mirándolo ahora, veo que hay un punto en el que el script divide la cadena de alias usando "=" como delimitador, y asume que solo habrá un = en la cadena.
Aquí hay una solución: en alias.bat, busque la línea que dice ":: validar alias" y en la siguiente línea reemplace el '2' con un '*', así:
for / f "delims == tokens = 1, * usebackq" %% G in ( echo "%_x%"
) do (
Esto parece funcionar para mí con tu ejemplo.
Gracias por explicar en detalle el problema en cuestión, ¡muy útil para mí ya que soy un novato en cosas de CMD! :)
Puedo confirmar que su corrección solucionó el problema, ¡gracias! ¿Debo hacer un PR?
Puedo crear una solicitud de extracción con la solución. Gracias por confirmar que funciona para ti.
Comentario más útil
Parece que el comando doskey (cuyo alias envuelve) maneja su ejemplo, por lo que esto puede ser un error en el script alias.bat.
Puede depurar modificando alias.bat y cambiando la primera línea a
<strong i="6">@echo</strong> on
. Mirándolo ahora, veo que hay un punto en el que el script divide la cadena de alias usando "=" como delimitador, y asume que solo habrá un = en la cadena.Aquí hay una solución: en alias.bat, busque la línea que dice ":: validar alias" y en la siguiente línea reemplace el '2' con un '*', así:
for / f "delims == tokens = 1, * usebackq" %% G in (
echo "%_x%"
) do (Esto parece funcionar para mí con tu ejemplo.