Renommer un .txt avec son contenu en batch
Mael730
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis novice en progra et j'aurai besoins d'un petit coup de main:
Jai un fichier *.txt qui contient ceci:
Date/Time:;16/12/2009;10:57:05;;;;;;;Version: V 1.600.386;
Operator:;;
Battery ID:;A_S1_1El;;;Source:;SAFT;;;Battery type:;Li-ion;
Nominal voltage:;4.00;V;;Nominal current:;6.50;A;;Nominal capacity:;6.50;Ah;
Program:;Sim_1elm;
Circuit:;Cyc_P4-1;
Test section:;TS000002;;;Comment:;Comment.;;;Start of test:;08/12/2008;15:37:19;;;End of test:;08/12/2008;16:34:09;
J'aimerai que le fichier soit renommer avec ces informations:
-la date (ici 2009)
-battery ID (ici A_S1_1El)
-source (ici SAFT)
-Battery type (ici Li-ion)
-Nominal capacity (ici 6.50)
ce qui donnerai :
2009_A_S1_1El_SAFT_Li-ion_6.50.txt
J'avais pensé faire un findstr mais comme ces informations changent d'un fichier à l'autre cela ne marchera pas donc je ne sais pas trop comment m'y prendre!
des idées??
Merci d'avance
P.S: batch obligé!
Je suis novice en progra et j'aurai besoins d'un petit coup de main:
Jai un fichier *.txt qui contient ceci:
Date/Time:;16/12/2009;10:57:05;;;;;;;Version: V 1.600.386;
Operator:;;
Battery ID:;A_S1_1El;;;Source:;SAFT;;;Battery type:;Li-ion;
Nominal voltage:;4.00;V;;Nominal current:;6.50;A;;Nominal capacity:;6.50;Ah;
Program:;Sim_1elm;
Circuit:;Cyc_P4-1;
Test section:;TS000002;;;Comment:;Comment.;;;Start of test:;08/12/2008;15:37:19;;;End of test:;08/12/2008;16:34:09;
J'aimerai que le fichier soit renommer avec ces informations:
-la date (ici 2009)
-battery ID (ici A_S1_1El)
-source (ici SAFT)
-Battery type (ici Li-ion)
-Nominal capacity (ici 6.50)
ce qui donnerai :
2009_A_S1_1El_SAFT_Li-ion_6.50.txt
J'avais pensé faire un findstr mais comme ces informations changent d'un fichier à l'autre cela ne marchera pas donc je ne sais pas trop comment m'y prendre!
des idées??
Merci d'avance
P.S: batch obligé!
A voir également:
- Renommer un .txt avec son contenu en batch
- Renommer des fichiers en masse - Guide
- Renommer son iphone - Guide
- Fichier batch - Guide
- Renommer un lien hypertexte ✓ - Forum Bureautique
- Comment renommer quelqu'un sur instagram - Guide
8 réponses
et pour cette chaine de caract il y a tjr le même nombre de " ; "
Battery ID:;A_S1_1El;;;Source:;SAFT;;;Battery type:;Li-ion;
Battery ID:;A_S1_1El;;;Source:;SAFT;;;Battery type:;Li-ion;
hello
j'arrive.
enlever le echo pour effectuer le rename
j'arrive.
enlever le echo pour effectuer le rename
C:> type f1.txt Date/Time:;16/12/2009;10:57:05;;;;;;;Version: V 1.600.386; Operator:;; Battery ID:;A_S1_1El;;;Source:;SAFT;;;Battery type:;Li-ion; Nominal voltage:;4.00;V;;Nominal current:;6.50;A;;Nominal capacity:;6.50;Ah; Program:;Sim_1elm; Circuit:;Cyc_P4-1; Test section:;TS000002;;;Comment:;Comment.;;;Start of test:;08/12/2008;15:37:19;;;End of test:;08/12 /2008;16:34:09; C:> type aa.bat @echo off set FICHIER=f1.txt for /f "delims=/; tokens=5" %%a in ('findstr "Date" %FICHIER%') do ( for /f "delims=; tokens=2,4,6" %%b in ('findstr "Battery" %FICHIER%') do ( for /f "delims=; tokens=8" %%e in ('findstr "Nominal capacity" %FICHIER%') do ( echo ren %FICHIER% %%a_%%b_%%c_%%d_%%e.txt ))) C:> aa ren f1.txt 2009_A_S1_1El_SAFT_Li-ion_6.50.txt
Merci dubcek, j'ai un autre problème:
pour un autre fichier j'ai une variable avec un espace: %%b= A S1_1El
donc pour le echo tout va bien le nom du fichier s'affiche nikel mais par contre la fonction rename ne prend pas les espaces apparemment==>la syntaxe de la commande est incorrect.
tu as une astuce?
pour un autre fichier j'ai une variable avec un espace: %%b= A S1_1El
donc pour le echo tout va bien le nom du fichier s'affiche nikel mais par contre la fonction rename ne prend pas les espaces apparemment==>la syntaxe de la commande est incorrect.
tu as une astuce?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je pense qu'il faut utiliser delims et token dans une boucle mais le problème c'est que les lignes sont toutes différentes!
dubcek t'es dans le coin??
dubcek t'es dans le coin??
Tu peut me dire aussi ce qui ne vas pas la dessous? Il faudrait que le script balaye tout le dossier à la recherche de fichiers .txt et qu'il effectue l'opération sur tout ces fichiers:
@echo off
for /f "delims=" %%x in ('dir /b *.txt') do (
set FICHIER=%%x
for /f "delims=/; tokens=5" %%a in ('findstr "Date" %FICHIER%') do (
for /f "delims=; tokens=2,4,6" %%b in ('findstr "Battery" %FICHIER%') do (
for /f "delims=; tokens=8" %%e in ('findstr "Nominal capacity" %FICHIER%') do (
echo ren %%x %%a_%%b_%%c_%%d_%%e.txt
))))
merci d'avance
@echo off
for /f "delims=" %%x in ('dir /b *.txt') do (
set FICHIER=%%x
for /f "delims=/; tokens=5" %%a in ('findstr "Date" %FICHIER%') do (
for /f "delims=; tokens=2,4,6" %%b in ('findstr "Battery" %FICHIER%') do (
for /f "delims=; tokens=8" %%e in ('findstr "Nominal capacity" %FICHIER%') do (
echo ren %%x %%a_%%b_%%c_%%d_%%e.txt
))))
merci d'avance
ajouter setlocal enableDelayedExpansion et remplacer % par ! pour la variable FICHIER
@echo off setlocal enableDelayedExpansion for /f "delims=" %%x in ('dir /b *.txt') do ( set FICHIER=%%x for /f "delims=/; tokens=5" %%a in ('findstr "Date" !FICHIER!') do ( for /f "delims=; tokens=2,4,6" %%b in ('findstr "Battery" !FICHIER!') do ( for /f "delims=; tokens=8" %%e in ('findstr "Nominal capacity" !FICHIER!') do ( echo ren !FICHIER! %%a_%%b_%%c_%%d_%%e.txt ))))