Votre syntaxe de commande me semble correcte. Je pense que la ligne d'un fichier de commandes, tout comme, pour produire ces commandes:
dir > 1.output
dir > 2.output
dir > 3.output
dir > 4.output
dir > 5.output
qui à son tour créer 1.output
, 2.output
, etc.
Comme une pointe de débogage, vous pouvez essayer de changer cela ligne à quelque chose comme ceci:
for %%a in (1 2 3 4 5) do echo dir ^> %%a.output
Notez le ^
, qui est utilisé pour échapper à la redirection >
.
aussi:
- Rappelez-vous d'utiliser
%%a
dans des fichiers batch mais %a
à la ligne de commande. Rappelez-vous que les variables for
sont sensible à la casse; %%A
est différent de %%a
.
Mise à jour
Il a été longtemps que je devais obtenir un fichier de traitement par lots de travail sous cette ancienne version du système d'exploitation, mais je ne serais pas surpris si la redirection était incompatible avec for
retour dans la journée.
Vous pouvez essayer ceci:
for %%a in (1 2 3 4 5) do call helper.bat %%a
En helper.bat:
dir > %1.output
Ou, si vous ne voulez pas un fichier de commandes supplémentaires, les combiner en un seul fichier:
if .%1==.sub goto do_sub
for %%a in (1 2 3 4 5) do call %0 sub %%a
goto end
:sub
shift
dir > %1.output
:end
BTW, quelle version du processeur de commande utilisez-vous? (Qu'est-ce que vous obtenez lorsque vous entrez 'ver' à l'invite?) –
Etes-vous en train d'entrer/tester ceci à la main à une invite CMD, ou en exécutant un fichier batch? Cela fait une différence. Assurez-vous de ne pas entrer %% à l'invite CMD, mais uniquement dans un fichier BAT. – Eddie
Windows 98 [Version 4.10.2222] – vivekian2