J'essaie de définir et d'utiliser une variable dans un fichier de commandes. Il semble que cela devrait être simple:
@echo off
set location = "bob"
echo We're working with "%location%"
Le résultat obtenu est le suivant:
We're working with ""
Que se passe t-il ici? Pourquoi ma variable n'est-elle pas répercutée?
L'espace précédant le =
est interprété comme faisant partie du nom et l'espace qui le suit (ainsi que les guillemets) est interprété comme faisant partie de la valeur. Ainsi, la variable que vous avez créée peut être référencée avec %location %
. Si ce n’est pas ce que vous voulez, supprimez les espaces supplémentaires dans la définition.
Les espaces sont importants. Vous avez créé une variable nommée (entre guillemets simples ajoutés pour indiquer l'emplacement de l'espace) 'location '
avec la valeur ' "bob"'
.
Si vous voulez des citations dans votre valeur, alors votre code devrait ressembler à
set location="bob"
Si vous ne voulez pas de guillemets, votre code devrait ressembler à
set location=bob
Ou mieux encore
set "location=bob"
La dernière syntaxe empêche les espaces de fin par inadvertance d'entrer dans la valeur et protège également contre les caractères spéciaux tels que & | etc.
entrée location.bat
@echo off
cls
set /p "location"="bob"
echo We're working with %location%
pause
sortie
We're working with bob
(erreurs commises: space
et " "
)