DOS - Retour à la ligne
evra
-
cchristian Messages postés 921 Date d'inscription Statut Membre Dernière intervention -
cchristian Messages postés 921 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
A travers un script DOS, je souhaiterais mettre le contenu d'un fichier (constitué de plusieurs lignes) dans un fichier d'une seule ligne.
Exemple de fichier d'entrée:
L01;L02;L03
L11;L12;L13
L21;L22;L23
Fichier de sortie souhaité :
L01;L02;L03;L11;L12;L13;L21;L22;L23
Merci d'avance de votre aide.
A travers un script DOS, je souhaiterais mettre le contenu d'un fichier (constitué de plusieurs lignes) dans un fichier d'une seule ligne.
Exemple de fichier d'entrée:
L01;L02;L03
L11;L12;L13
L21;L22;L23
Fichier de sortie souhaité :
L01;L02;L03;L11;L12;L13;L21;L22;L23
Merci d'avance de votre aide.
A voir également:
- DOS - Retour à la ligne
- Retour à la ligne excel formule - Guide
- Partager photos en ligne - Guide
- Notepad++ retour à la ligne ✓ - Forum Bureautique
- Retour à la ligne google sheet - Forum Google Docs
- Retour à la ligne google sheets android ✓ - Forum Google Docs
3 réponses
Bonsoir,
Essaie cela, je pense que ça correspond à ce que tu cherches !
Essaie cela, je pense que ça correspond à ce que tu cherches !
SETLOCAL ENABLEdelayedExpansion SETLOCAL ENABLEextensions CLS rem Creation de l'environnement (fichier nomF_IN) de tests : SET "nomF_IN=%USERNAME:~0,+3%-FichIN.txt" ECHO L01;L02;L03>%nomF_IN% ECHO L11;L12;L13>>%nomF_IN% ECHO L21;L22;L23>>%nomF_IN% SET "nomF_OUT=%USERNAME:~0,+3%-FichOUT.txt" SET "VAR_LIG=" FOR /F "tokens=1 delims=" %%J IN (%nomF_IN%) DO ( rem POUR TESTS echo J: %%J SET "VAR_LIG=!VAR_LIG!%%J" ) rem POUR TESTS echo !VAR_LIG! ECHO !VAR_LIG! > %nomF_OUT% GOTO :EOF
Merci Cchristian !
Cela fonctionne !!!
Cependant mon fichier d'entrée peut avoir un nombre de ligne variable.
Dans ton exemple, si je rajoutes des lignes manuellement, le fichier de sorti ne possède que les 3 lignes précédentes.
Comment cela pourrait être dynamique (sans à avoir saisir chaque ligne dans le script) ?
Merci,
Cela fonctionne !!!
Cependant mon fichier d'entrée peut avoir un nombre de ligne variable.
Dans ton exemple, si je rajoutes des lignes manuellement, le fichier de sorti ne possède que les 3 lignes précédentes.
Comment cela pourrait être dynamique (sans à avoir saisir chaque ligne dans le script) ?
Merci,
Bonjour,
Cette partie de code n'est à utiliser qu'une seule fois pour créer un environnement de test et si le fichier nomF_IN n'existe pas déjà dans ton environnement, s'il existe la séquence suivante doit être mise en commentaire (rem) ou bien éliminée avant toute éxécution du batch :
et de toute façon, le nom du fichier doit être actualisé avec le nom réel du fichier.
Si le fichier n'existe pas déjà cette séquence ne sert qu'une fois pour le créer, après actualisation de son nom.
En résumé le contenu L01; .....................L23 (sur 3 lignes) n'a d'intérêt que pour tester le batch et s'il n'existe pas déjà un fichier dans ton environnement.
Dans tous les cas il faudra mettre en commentaire (rem) cette séquence ou bien l'éliminer. Ensuite (une fois créé ou déjà existant) toute ligne ajoutée dans ce fichier nomF_IN par d'autres moyens (manuellement ou par programme autre que ce batch) sera permanente.
Cette partie de code n'est à utiliser qu'une seule fois pour créer un environnement de test et si le fichier nomF_IN n'existe pas déjà dans ton environnement, s'il existe la séquence suivante doit être mise en commentaire (rem) ou bien éliminée avant toute éxécution du batch :
rem Creation de l'environnement (fichier nomF_IN) de tests : ECHO L01;L02;L03>%nomF_IN% ECHO L11;L12;L13>>%nomF_IN% ECHO L21;L22;L23>>%nomF_IN%
et de toute façon, le nom du fichier doit être actualisé avec le nom réel du fichier.
SET "nomF_IN=%USERNAME:~0,+3%-FichIN.txt"devient :
SET "nomF_IN=nom_de_ton_fichier_existant"
Si le fichier n'existe pas déjà cette séquence ne sert qu'une fois pour le créer, après actualisation de son nom.
En résumé le contenu L01; .....................L23 (sur 3 lignes) n'a d'intérêt que pour tester le batch et s'il n'existe pas déjà un fichier dans ton environnement.
Dans tous les cas il faudra mettre en commentaire (rem) cette séquence ou bien l'éliminer. Ensuite (une fois créé ou déjà existant) toute ligne ajoutée dans ce fichier nomF_IN par d'autres moyens (manuellement ou par programme autre que ce batch) sera permanente.