J'ai essayé de créer un fichier de commandes à l'aide d'un autre fichier de commandes.
Le fichier que je veux créer doit contenir %username%
pour pouvoir fonctionner également sur d'autres ordinateurs.
Chaque fois que j'essaie de le faire, il tape mon nom d'utilisateur actuel dans le fichier, ce qui rend impossible l'exécution sur d'autres ordinateurs. Quelqu'un peut-il m'aider s'il vous plaît avec mon problème?
Voici ce que j'ai écrit dans le fichier de commandes:
Echo cd c:\Users\%username%\Documents > x.bat
Mais quand j'ouvre x.bat, il dit:
Echo cd c:\Users\myname\Documents
En fait, je sais ce qui cause ce problème, mais je n’ai trouvé aucun moyen de le surmonter.
windows
command-line
batch
batch-file
username
Ali Demir
la source
la source
%%USERNAME%%
%%random%%
%
est le caractère d'échappement dans le fichier de commandes. Utilisez%%
au lieu d'un%
. Plus de détails .Réponses:
Certaines personnes intelligentes ont examiné le fonctionnement interne de cmd.exe traitant des fichiers de commandes dans ce Q & A de stackoverflow.com .
Pour échapper à un,
%
il doit être doublé(le lien mentionné ci-dessus explique qu'il s'agit d'une étape annulée au début par l'analyseur de lot).
Si vous définissez et faites écho à plusieurs reprises une variable contenant un,
%
vous devrez redoubler les étapes pour retarder l'expansion%
->%%
->%%%%
.La question connexe
delayedexpansion
a deux solutions.!
au lieu de%
.Ceci est requis lorsque vous définissez et utilisez une variable dans un (bloc de code)
(pour référencer indirectement une variable par exemple)
Exemples:
Exemple de sortie:
la source