Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

concatenation en gardant le non d'un fichier

14 réponses
Avatar
---DGI972---
Bonjour,

Je souhaite recopier une entête fixe dans un fichier de sortie.
J'ai crée donc un fichier entete.txt avec les entêtes fixes.
Dans le répertoire OUTPUT il y a, aprés un traitement, un fichier
xxxxxxx.sort (les xxxxxxx sont des chiffres variables à chaque
traitement).
en faisant la cmd suivante j'obtiens a peu de prés ce que je veux, sauf
que je voudrais que le fichier de sortie s'appelle xxxxxxx.tri au lieu
du nom fixe output.tri

cd C:\OUTPUT
copy ..\entete.txt + *.sort output.tri

comment modifier la ligne copy SVP ?
merci d'avance

NB: quelqu'un a t-il des nouvelles de Jceel ?

10 réponses

1 2
Avatar
Méta-MCI
Bonjour !

Un petit batch devrait résoudre le problème, sans trop de difficultés.

Exemple :


@echo off
FOR /F "usebackq" %%i IN (`dir *.sort /B`) DO (
call :SUB %%~ni %%~xi
)
goto :EOF


:SUB
::::echo copy entete.txt+%1%2 %1.tri
copy entete.txt+%1%2 %1.tri




Note_1 : la ligne commençant par :::: peut être enlevée. Elle sert juste
pour le cas où on voudrait voir ce qui se passe.

Note_2 : il y a sûrement une solution plus compliquée, avec VBS ou JS.
Mais, c'est trop complexe pour moi, alors je propose juste une solution
facile en batch (et hop, un petit troll de plus au passage).




@-salutations

Michel Claveau
Avatar
Méta-MCI
Re

Une version avec /R au lieu de /F :


@echo off
FOR /R . %%i IN (*.sort) DO (
call :SUB %%~ni %%~xi
)
goto :EOF

:SUB
echo.
::::echo copy entete.txt+%1%2 %1.tri
copy entete.txt+%1%2 %1.tri
Avatar
---DGI972---
Re

Une version avec /R au lieu de /F :


@echo off
FOR /R . %%i IN (*.sort) DO (
call :SUB %%~ni %%~xi
)
goto :EOF

:SUB
echo.
::::echo copy entete.txt+%1%2 %1.tri
copy entete.txt+%1%2 %1.tri


Bonjour et merci pour la réponse
mais cela ne marche pas :'(
j'ai un message:
Le système ne peut pas trouver le nom de fichier de commandes - SUB
je m suis créé un petit environement de test:
C:TESTtest_testoutput
dans test_test:

j'ai le fichier entete.txt qui contient:
NOM;PRENON;CP;VILLE

j'ai test.cmd qui contient:
cd C:TESTtest_testoutput
ren *.tri *.sort
rem copy ..entete.txt + *.sort output.tri "qui fonctionne a peu prés"

@echo off
FOR /R . %%i IN (*.sort) DO (call :SUB %%~ni %%~xi)
goto :EOF

cd ..

dans output
j'ai mon fichier 12346789.tri qui contient
SMITH,john,33300,BORDEAUX
DUPONT,jean,75000,PARIS

je voudrais aprés le lancement du test.cmd que le fichier se nomme:
123456789.sort
et avec la structure
NOM;PRENON;CP;VILLE
SMITH,john,33300,BORDEAUX
DUPONT,jean,75000,PARIS

merci

Avatar
Michel Claveau
Re

C'est la faute à ton lecteur de news.
MesNews remplace les caractères : par des caractères de réponse.
Je remet l'exemple, avec un pseudo caractère en début de ligne, à
supprimer pour utilisation (en espérant que ça passera...

X @echo off
X FOR /R . %%i IN (*.sort) DO (
X call :SUB %%~ni %%~xi
X )
X goto :EOF
X
X :SUB
X ::::echo copy entete.txt+%1%2 %1.tri
X copy entete.txt+%1%2 %1.tri

--
@-salutations

Michel Claveau
Avatar
Michel Claveau
Bon, je me suis connecté avec MesNews, et, là, ça passe.

--
@-salutations

Michel Claveau
Avatar
---DGI972---
Bon, je me suis connecté avec MesNews, et, là, ça passe.


Super cela fonctionne nickel chrome rien à dire à part que j'ai rien
pigé et que je me suis fait piégé par mesnews.

Un grand merci michel

Avatar
Jean
que je me suis fait piégé par mesnews.


Vous pouvez faire icône Tournevis/"Niveau de quotage/Pas de formatage"

Amicalement,

--
Jean - JMST
Belgium

Avatar
Jean
C'est la faute à ton lecteur de news.


... non ... c'est la faute à Michel qui n'a pas mis 2 esapces devant
ses lignes de code :-)

Amicalement,

--
Jean - JMST
Belgium

Avatar
Méta-MCI
C'est mesquin, de profiter de mes vacances, pour me casser du sucre sur le
dos...
;-))

@+

MCI
Avatar
Jean
C'est mesquin, de profiter de mes vacances, pour me casser du sucre sur le
dos...
;-))

@+

MCI


Vu d'ici, ce n'était que de la cassonade, ça ne fait pas mal du tout
:O)

Amicalement,

--
Jean - JMST
Belgium

1 2