Cmder: Créer un alias avec un signe égal est tronqué dans cmder cli

Créé le 2 févr. 2017  ·  3Commentaires  ·  Source: cmderdev/cmder

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 ? ??

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.

Tous les 3 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

bmeverett picture bmeverett  ·  3Commentaires

luisrudge picture luisrudge  ·  3Commentaires

Joe1992w picture Joe1992w  ·  3Commentaires

tfarina picture tfarina  ·  3Commentaires

zsedcbm picture zsedcbm  ·  3Commentaires