2010-07-13 5 views
0

J'essaie d'écrire un script batch avec une section qui envoie vos mappages de lecteur dans un fichier texte, afin que je puisse le restaurer plus tard une fois que j'ai effacé la machine. Je suis venu avec ceci pour la boucle pour le faire, mais son action différemment quand c'est un manuscrit par lots contre exécuter la commande elle-même.La même chose pour la boucle agit différemment (WinXP)

Ceci est la ligne de code:

FOR /F "tokens=1,2" %i in (H:\mappings2.dat) do @echo %i %j 

Quand je copier et coller la commande à partir du script à la fenêtre de commande, il fonctionne très bien. Quand je lance le script batch à partir d'une fenêtre de commande il affiche ceci:

FOR /F "tokens=1,2" \mappings2.dat) do @echo j 
\mappings2.dat) was unexpected at this time. 

Im devinant il y a un petit truc qui va le réparer, mais je ne peux pas trouver quoi que ce soit sur google ...

oh, dans cas vous vous demandez ici est cette partie du script:

net use > H:\mappings0.dat 

findstr /r [A-Z]: H:\mappings0.dat > H:\mappings2.dat 

FOR /F "tokens=1,2" %i in (H:\mappings2.dat) do @echo %i %j >> H:\mappings1.dat 

Répondre

2

Nevermind j'ai tout compris ... pour les variables de boucle doivent avoir des signes doubles de pourcentage, tandis que les versions en ligne de commande utilisent uniquement signe pourcentage unique pour les variables de boucle. ..J'ai ajouté un autre% à chaque variable dans ma boucle for et maintenant fonctionne parfaitement.

Questions connexes