J'essaie quelque chose comme:
set pwd = abc&123
echo password %pwd%
J'obtiens le résultat comme ...
'123' is not recognized as an internal or external command, operable program or batch file.
password abc
Le système est-il comme ça ou y a-t-il une échappatoire pour de tels personnages?
windows
command-line
batch
déostroll
la source
la source
Réponses:
Ce que vous devez faire est de mettre votre mot de passe entre guillemets comme ceci:
Dites-moi comment ça se passe.
la source
set "pwd=abc&123"
J'ai trouvé que cela fonctionne mieux avec une combinaison de la réponse de Martineau et de la réponse de Mastashake57.
Échoue toujours, et
Ajoute des guillemets (vous ne pouvez pas supprimer les guillemets avec une
for
manipulation de boucle ou de chaîne, car cela échouera à nouveau, grâce à l'esperluette), ce qui n'est pas terrible.cependant,
Marche parfaitement.
J'espère que cela pourra aider.
la source
pwd
surabc^&123
. La plupart du temps, c'est probablement exactement ce que vous devez faire, mais cela pourrait vous surprendre si vous n'êtes pas au courant de ce qui se passe./?
ne fournit qu'un résumé, pas une documentation complète.À partir du fichier d'aide de référence de ligne de commande:
Il semble que mettre le mot de passe entier entre guillemets serait plus facile que d'échapper à des caractères individuels s'il y a plus de deux caractères à l'intérieur qui ont besoin du traitement.
la source
Ce dont vous avez vraiment besoin, c'est:
Ou:
Explication:
Étant donné qu'il
&
s'agit d'un caractère spécial, vous devez lui échapper, ce qui^
entraîne^&
.L'exécution
set pwd=abc^&123
définira la variable sur la valeurabc&123
. Après cela, si vous deviez courirecho %pwd%
, vous courez effectivementecho abc&123
.Pourtant,
echo abc&123
ne fonctionne pas comme prévu, car il&
s'agit d'un caractère spécial. Vous pouvez éviter cela en ajoutant des guillemets:echo "abc&123"
mais votre sortie aurait aussi les caractères de guillemet. En d'autres termes, l'utilisation de guillemets n'est pas exactement une bonne solution.Ce dont vous avez besoin est d'échapper au caractère
&
lorsque vous exécutez laecho
commande:La variable doit donc contenir la valeur
abc^&123
. Pour définir la variable sur la valeurabc^&123
, vous devez échapper les caractères spéciaux^
et&
, résultant en:la source