[BATCH] Commande DOS

Résolu/Fermé
babykichon Messages postés 5 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 1 février 2010 - 1 févr. 2010 à 15:09
babykichon Messages postés 5 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 1 février 2010 - 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."
A voir également:

7 réponses

babykichon Messages postés 5 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 1 février 2010 1
1 févr. 2010 à 18:22
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
1
EminoMeneko Messages postés 2435 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 23 mai 2018 318
1 févr. 2010 à 15:16
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
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
1 févr. 2010 à 15:24
hello
essaye
FOR /F "delims=" %%a IN (tata.txt) DO copy "%PWD%\%%a\toto_%%a.txt" >>temp.txt
0
babykichon Messages postés 5 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 1 février 2010 1
1 févr. 2010 à 15:54
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
1 févr. 2010 à 15:58
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%+
0
babykichon Messages postés 5 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 1 février 2010 1
1 févr. 2010 à 16:07
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 ...
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
1 févr. 2010 à 16:12
utiliser type, pas copy
FOR /F %%a IN (tata.txt) DO type "%PWD%\%%a\toto_%%a.txt" >>temp.txt
0