Hé là, selon le titre, lorsque j'essaie dans l'invite cmder de créer un alias avec un signe égal, ce qui vient avec le =
est tronqué et n'est pas correctement stocké dans le fichier user-aliases.cmd
.
Par exemple :
λ alias wifi=netsh wlan show profile $1 key=clear
sera stocké en tant que :
wifi=netsh wlan show profile $1 ke
Je suppose que pour $reasons
cmder lit y=clear
comme $something
digne d'être évalué et donc coupé du processus de stockage d'alias. La modification manuelle du fichier permet de résoudre rapidement ce problème.
Est-ce que je manque de manière flagrante quelque chose dans le manuel Effin 'en constante évolution que je n'ai pas lu avec précision ? ??
Il semble que la commande doskey (que l'alias enveloppe) gère votre exemple, il peut donc s'agir d'un bogue dans le script alias.bat.
Vous pouvez déboguer en modifiant alias.bat et en remplaçant la première ligne par <strong i="6">@echo</strong> on
. En le regardant maintenant, je vois qu'il y a un point où le script divise la chaîne d'alias en utilisant "=" comme délimiteur et suppose qu'il n'y aura qu'un seul = dans la chaîne.
Voici un correctif : dans alias.bat, recherchez la ligne qui dit « : : validate alias » et dans la ligne suivante remplacez le « 2 » par un « * », comme ceci :
for /f "delims== tokens=1,* usebackq" %%G in ( echo "%_x%"
) do (
Cela semble fonctionner pour moi avec votre exemple.
Merci d'avoir expliqué en détail le problème, très utile pour moi car je suis novice en matière de CMD ! :)
Je peux confirmer que votre correction a résolu le problème, merci! Dois-je faire une RP ?
Je peux créer une pull request avec le correctif. Merci d'avoir confirmé que cela fonctionne pour vous.
Commentaire le plus utile
Il semble que la commande doskey (que l'alias enveloppe) gère votre exemple, il peut donc s'agir d'un bogue dans le script alias.bat.
Vous pouvez déboguer en modifiant alias.bat et en remplaçant la première ligne par
<strong i="6">@echo</strong> on
. En le regardant maintenant, je vois qu'il y a un point où le script divise la chaîne d'alias en utilisant "=" comme délimiteur et suppose qu'il n'y aura qu'un seul = dans la chaîne.Voici un correctif : dans alias.bat, recherchez la ligne qui dit « : : validate alias » et dans la ligne suivante remplacez le « 2 » par un « * », comme ceci :
for /f "delims== tokens=1,* usebackq" %%G in (
echo "%_x%"
) do (Cela semble fonctionner pour moi avec votre exemple.