Lot De Concaténation De Chaîne
Je suis en train de créer un lot de chaîne comme ceci: >abcd_
J'ai une variable appelée soeid, avec la valeur de abcd. C'est ce que je fais, mais il ne fonctionne pas.
set soeid=abcd
set "val1=>"
set "val2=_"
set "str=%val1%%soeid%%val2%"
echo %str%
La première chose que vous devez taper après "ne fonctionne pas", est une explication de comment il ne fonctionne pas. Nous ne pouvons pas lire dans votre esprit ou de voir votre écran à partir d'ici; nous n'avons qu'à aller sur ce que vous nous dites dans votre question. Si vous voulez de l'aide, vous devez nous dire quel est le problème que vous rencontrez, et comment ce que vous avez essayé n'a pas marché.
OriginalL'auteur NewQueries | 2012-02-22
Vous devez vous connecter pour publier un commentaire.
Je suis sûr qu'il fonctionne correctement. Pour le prouver, ajoutez
SET STR
après vous définissez la valeur, et vous verrez la valeur correcte.Le problème que vous rencontrez est lorsque vous essayez de l'écho de la valeur, la ligne qui est en cours d'exécution devient:
echo >abcd_
. Le>
n'est pas échappés, de sorte qu'il est tout simplement en prenant la sortie de l'ÉCHO sans arguments et en la redirigeant vers un fichier nommé "abcd_"Si vous n'avez pas l'esprit en voyant les guillemets, puis changer de ligne à
echo "%str%"
et il va fonctionner.L'autre option est d'activer et d'utiliser expansion retardée (je suppose que c'est un script batch de code, et de la non-exécution sur la ligne de commande)
Normal
%var%
expansion se produit rapidement, alors que l'interprète est l'analyse de la ligne. Retardé!var!
expansion se produit à la fin juste avant son exécution. La redirection est détectée dans le milieu. C'est pourquoi la normale d'extension ne fonctionne pas - l'interprète voit l'étendu>
personnage et l'interprète comme la redirection de la sortie de l'opérateur. L'expansion retardée cache la>
personnage de l'interprète jusqu'après la redirection est analysée.Pour plus d'infos sur l'expansion retardée, type
SET /?
à partir de la ligne de commande et de le lire en commençant par le paragraphe qui commence par "Enfin, un soutien pour retarder l'expansion des variables d'environnement...".J'ai étendu ma réponse avec une explication
OriginalL'auteur dbenham