Création
d'entreprise
Posez votre question Signaler

[BATCH] Commande DOS [Résolu]

babykichon 5Messages postés 21 mai 2007Date d'inscription - Dernière réponse le 1 févr. 2010 à 18:22
Bonjour,
je suis sur un petit .bat et j'ai un petit soucis.
Voici la ligne qui pose probleme :
FOR /F %%a IN (tata.txt) DO copy %PWD%\%%a\toto_%%a.txt >>temp.txt
sachant que mon fichier tata contient les differents noms dont j'ai besoin pour mes fichiers a recuperer.
Voila donc, arrive ici, il me remplace le %%a par le premier mot de mon tata.txt, puis le second, etc etc ....
Probleme : il rajoute un espace juste avant le \%%a ... donc impossible de lire le PATH.
ca me donne un truc du genre : c:\test(ESPACE)\tatanom\toto_tatanom.txt 1>>temp.txt
Je n'ai pas la solution pour retirer cet espace, si quelqu'un a la solutionm d'avance merci.
car du coup, mon temp.txt est rempli de "The system cannot find the file specified."
Lire la suite 

[BATCH] Commande DOS »

Suggestions
7 réponses
Réponse
+1
moins plus
Bon tout marche niquel, voici le resultat

set PWD=%~dp0
set PWD=%PWD:\riri\=\fifi%
set PWD=%PWD:~0,-1%

M'enfin 3 lignes pour recuperer le path courant, changer juste de folders .... ca me pique quand meme les yeux, j'aurais bien aime une solution du style :

set PWD=%CD:\riri\=\fifi%~0,-1%

bon je me doute que je vais en faire friser plus d'un tellement ca doit etre faux, mais l'idee me plait bien ....

EDIT :

set PWD=%CD:\riri=\fifi%
it works :D
et avec cette ligne je n'ai meme plus le probleme d'espace, merci pour votre aide.
Ca servira a d'autres je l'espere :D
Ajouter un commentaire
Réponse
+0
moins plus
Je ne maitrise pas la programmation batch a cause de ses variables bizarres mais si ça pouvait t'aider j'en serais ravi.

http://www.hotline-pc.org/batch.htm#2101
Ajouter un commentaire
Réponse
+0
moins plus
hello
essaye
FOR /F "delims=" %%a IN (tata.txt) DO copy "%PWD%\%%a\toto_%%a.txt" >>temp.txt
Ajouter un commentaire
Réponse
+0
moins plus
Merci a vous,
pour le lien je suis dessus, j'espere bien trouver une reponse il a l'air plutot detaille.
Concernant le "delims=", cela ne change rien T_T, merci quand meme :D
Ajouter un commentaire
Réponse
+0
moins plus
peut-on voir le contenu de tata.txt
ne serait-ce pas la variable PWD qui a un espace à la fin ?
pour vérifier : echo +%PWD%+
Ajouter un commentaire
Réponse
+0
moins plus
Voici le contenu :

pierre
jaques
bob
paul
dede

Mais je pense que je m'y prends mal en plus de mon probleme d'espace, en faite je veux copier a la suite dans mon temp.txt, ce qu'il y a dans : toto_pierre.txt, toto_jacques.txt etc etc...

Cette ligne
copy "%PWD%\%%a\toto_%%a.txt" >>temp.txt, provenait d'une ligne linux qui utilisait la commande cat que j'ai remplace par copy mais du coup dans mon temp.txt il ecrit le resultat de l'operation a savoir :
" 1 file(s) copied."
et me reecrit mon toto_pierre.txt dans un nouveau toto_pierre.txt dans le repertoire courant.
A la limite ceci n'est pas grave suffit de trouver la bonne commande, en revanche pour l'espace, ce probleme m'embete particulierement ...

EDIT : En effet le probleme vient de PWD qui possede un espace supplementaire... Voila comment je set mon PWD :

set PWD=%~dp0
set PWD=%PWD:\riri\=\fifi%

Il faudrait peut etre rajouter un set %PWD:~0,-1%, je sais pas si ca marche, je debute depuis ce matin en DOS donc bon ...
Ajouter un commentaire
Réponse
+0
moins plus
utiliser type, pas copy
FOR /F %%a IN (tata.txt) DO type "%PWD%\%%a\toto_%%a.txt" >>temp.txt
Ajouter un commentaire
Ce document intitulé « [BATCH] Commande DOS » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?