Créer des listes ou des tableaux de commandes Windows
Puis-je déclarer une liste ou d'une matrice dans un fichier de commandes comme ceci:
set list = "A B C D"
Et puis j'ai besoin d'écrire dans un fichier, avec les espaces entre:
A
B
C
D
Vous devez vous connecter pour publier un commentaire.
Oui, vous pouvez l'utiliser de deux manières. Si vous voulez juste pour séparer les éléments et de montrer qu'il en lignes séparées, une liste de plus simple:
Une liste de valeurs séparées par un espace peut être facilement traité par
for
commande:Vous pouvez également créer un tableau de cette façon:
et afficher les éléments du tableau de cette façon:
Pour plus de détails sur la gestion de la matrice dans des fichiers Batch, voir: Des tableaux, des listes chaînées et des autres structures de données cmd.exe (lot) script
ATTENTION! Vous devez savoir que tous les caractères inclus dans
set
de commande sont insérés dans le nom de la variable (à gauche du signe égal), ou dans la valeur de la variable. Par exemple, cette commande:créer une variable appelée
list
(liste-espace) avec la valeur"A B C D"
(espace, un devis, Un, etc). Pour cette raison, il est une bonne idée de ne jamais insérer des espaces dansset
commandes. Si vous avez besoin de mettre la valeur entre guillemets, vous devez inclure à la fois le nom de la variable et sa valeur:PS - Vous ne devez PAS utiliser
ECHO.
afin de laisser des lignes vides! Une alternative estECHO/
. Pour plus de détails sur ce point, voir: http://www.dostips.com/forum/viewtopic.php?f=3&t=774for /L %%i in (0,1,%n%)
vous devriez obtenir toutes, au lieu de juste les 3 premiers. 🙂Vous n'avez pas besoin - en fait, peut pas "déclarer des variables" dans le lot. Affectation d'une valeur à une variable crée, et l'attribution d'une chaîne vide supprime. Tout nom de variable qui n'a pas de valeur assignée A une valeur de chaîne vide. TOUTES les variables sont des chaînes de caractères - SANS exception. Il y a des opérations qui apparaissent à effectuer (entier) fonctions mathématiques, mais ils fonctionnent en convertissant en arrière à partir de chaînes de caractères.
Lot est sensible aux espaces dans les noms de variables, de sorte que votre affectation en tant affichées affecter la chaîne
"A B C D"
- y compris les citations, à la variable"list "
- ne PAS inclure les guillemets, mais y compris l'espace. La syntaxeset "var=string"
est utilisé pour affecter la valeurstring
àvar
alors queset var=string
fera la même chose. Presque. Dans le premier cas, toute fuite espace après le guillemet de fermeture sont EXCLUS de la valeur attribuée, dans le second, ils sont INCLUS. Les espaces sont un peu difficile à voir lors de l'impression.ECHO
échos des chaînes de caractères. Clasically, il est suivi par un espace - l'un des séparateurs par défaut utilisé par lots (les autres sont TABULATION, VIRGULE, point - VIRGULE, un de ces faire aussi bien, MAIS les ONGLETS souvent se transforment en un espace-squence par le texte-les éditeurs et les autres ont connu une croissance bizarreries de leur propre fil des ans.) D'autres caractères à la suite de laO
dansECHO
ont été trouvés à faire précisément ce que la documentation de l'ESPACE devrait le faire. Un POINT commun. Ouvrez-la parenthèse(
est probablement la plus utile depuis la commandeproduira un rapport de la
ECHO
état (ECHO is on/off
) alors queva produire une ligne vide.
Le problème avec
ECHO(
est que le résultat de l'aspect asymétrique.Parfois l'élément du tableau peut être très long, à ce moment, vous pouvez créer un tableau de cette façon:
Alors montrer:
De type tableau n'existe pas
Il n'y a pas de "tableau" type de fichiers "batch", qui est à la fois un avantage et un inconvénient à la fois, mais il existe des solutions de contournement.
Voici un lien qui propose quelques suggestions pour la création d'un système similaire à un tableau dans un lot: http://hypftier.de/en/batch-tricks-arrays.
echo variable >> filepath
œuvres pour écho le contenu d'une variable dans un fichier,echo.
(la période n'est pas une faute de frappe) pour en écho à un caractère de nouvelle ligne.Je pense que ces deux doivent travailler à l'accomplissement de ce que vous avez besoin.
Lecture