Comment utiliser une itération de la variable dans une boucle for dans des fichiers batch MS-DOS?
J'ai un fichier de commandes qui fait quelque chose comme ça
for %%a in (1 2 3 4 5) do dir > %%a.output
%%a
me donne juste un .
Comment puis-je utiliser la valeur de la variable %%a
à attribuer le nom de fichier (par exemple, 1.de sortie, 2.de sortie) ?
- Btw, quelle est la version de l'interpréteur de commandes que vous utilisez? (Ce que vous obtenez lorsque vous entrez 'ver' à l'invite de commandes?)
- Êtes-vous d'entrer/de tester ce par la main à une invite de CMD, ou de l'exécution d'un fichier batch? Cela fait une différence. Assurez-vous de ne pas entrer %% à l'invite de CMD, mais seulement dans un fichier BAT.
- Windows 98 [Version 4.10.2222]
- C'est un fichier de commandes.
- MS-DOS n'avait pas la pour la commande, pour autant que je sais. Aucun des deux n'a de Windows 9x. Les fichiers de commandes sont à peine indolore sur Windows (NT, et plus tard), mais sur le DOS/Win9x ils sont vraiment douloureux.
Vous devez vous connecter pour publier un commentaire.
Vous devez entourer votre variable:
Votre syntaxe de la commande est correct pour moi. Je m'attends à ce que la ligne d'un fichier de commandes, comme l'est, pour produire ces commandes:
Qui serait à son tour créer
1.output
,2.output
, etc.Comme une astuce de débogage, vous pouvez essayer de changer cette ligne pour quelque chose comme ceci:
Note le
^
, qui est utilisé pour échapper à la>
redirection.Aussi:
%%a
dans des fichiers batchmais
%a
à la ligne de commande.for
variables sontsensible à la casse;
%%A
est différentde
%%a
.Mise à jour
Il a été un long temps depuis que j'ai eu pour obtenir un fichier de commandes de travail sous une ancienne version de l'OS, mais je ne serais pas surpris si la redirection est incompatible avec
for
retour dans la journée.Vous pouvez essayer ceci:
En aide.chauve-souris:
Ou, si vous n'aimez pas un lot supplémentaire de fichier, de les combiner en un seul fichier:
Je n'ai pas de Win98 système à ma disposition, mais entrer
for /?
dans une fenêtre DOS et de voir si il y a quelque chose là-bas qui peut vous aider.La façon de le faire dans le NT de Windows OS est:
De sorte que votre déclaration serait quelque chose comme:
Peut-être il y a quelque chose de similaire dans le DOS sous Win98.