2

Supposons que vous ayez un script qui prend quelques arguments de ligne de commande et vide ses résultats à stdout.Arguments de chargement de script par lots de Windows

manuellement appel à ce script ressemblera à ceci:

perl foo.pl arg1 arg2 arg3 

Sans changer le script en question, est-il possible sous Windows pour prendre le contenu d'un fichier (par exemple, input.txt est un fichier texte sur plusieurs lignes avec arg{1,3} délimité par un espace sur chaque ligne) et d'exécuter quelque chose comme ceci:

foreach line in input.txt 
    perl foo.pl current_line >> output.txt 

en ce moment, je viens d'un autre script Perl qui fait cela, mais me demandais si cela était possible de toute façon.

Répondre

2

Je vais dire oui.

J'ai cherché sur le Web avec Google pour windows batch loops et j'ai obtenu cette page: http://www.robvanderwoude.com/for.php.

Je fouilla sur le site et ont trouvé cette page: http://www.robvanderwoude.com/ntfor.php#FOR_F

Il semble donc que le code serait quelque chose comme ...

FOR /F %%variable IN (input.txt) DO perl foo.pl %%variable >> output.txt 
+0

La syntaxe est un peu différent. Dans un fichier de commandes FOR/F %% un IN (input.txt) DO perl foo.pl %% a >> output.txt. À l'invite de commande FOR/F% un IN (input.txt) DO perl foo.pl% a >> output.txt – jeb

+0

merci, @jeb. J'ai mis à jour à la version "dans un fichier". –

+0

@jeb: merci pour le gain de temps. – zergocisc

Questions connexes