2012-05-30 2 views
0

J'ai donc essayé de rechercher des solutions en ligne, mais je n'en ai trouvé aucune. Fondamentalement, j'ai une commande comme ceci:BAT a échoué commande de copie - continuer après &&

for /D %%X in (s*) do copy f1.txt %%X\f1.txt && copy f2.txt %%X\f2.txt 

Cependant, si f1.txt n'existe pas, je reçois un The system cannot find the file specified et f2.txt n'est pas copié pour le répertoire donné.

Comment puis-je contourner cela pour que f2.txt soit copié même si f1.txt n'existe pas? Remarque, je ne peux pas simplement diviser en deux lignes différentes parce que j'ai ces instructions de copie dans une énorme boucle for avec de nombreuses commandes.

Répondre

0

Changer le && aux ||

1

Merci pour votre réponse JMC. Il m'a conduit à trouver ce web page.

Là, je trouve que je devrais changer le & & à un & fait:

command1 & commande_2: Permet de séparer plusieurs commandes sur une seule ligne de commande. Cmd.exe exécute la première commande, puis la deuxième commande.

il devrait donc être:

for /D %%X in (s*) do copy f1.txt %%X\f1.txt & copy f2.txt %%X\f2.txt 
+1

correcte. La commande qui suit '&&' ne s'exécute que si la précédente n'a pas échoué. Et avec '||', en passant, c'est juste l'inverse: la commande suivante est invoquée seulement si la commande précédente a échoué. Vous avez besoin de '&' si vous voulez que les deux fonctionnent indépendamment les uns des autres. –

Questions connexes