Pb BATCH
Fermé
Atome
-
8 juil. 2009 à 11:42
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 9 juil. 2009 à 01:02
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 9 juil. 2009 à 01:02
A voir également:
- Pb BATCH
- Fichier batch - Guide
- Msgbox batch ✓ - Forum Autoit / batch
- Net use batch - Forum Réseau
- Extension batch - Forum Windows
- Color batch - Forum Autoit / batch
11 réponses
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
8 juil. 2009 à 12:20
8 juil. 2009 à 12:20
Bonjour,
Essaie cela:
Essaie cela:
SETLOCAL ENABLEdelayedExpansion SETLOCAL ENABLEextensions echo off CLS set "test=dep3_01072009.txt" set /A m = 5 set /A n = 8 echo !test:~%m%,%n%! goto :EOF
merci pour at réponse mais ca ne fonctionne pas
et en fait cela serait mieux si il ne tenait pas compte des caracteres
juste les supprimer car quand la date change ca ne fonctionne plus
en clair le mieux serait une commande qui supprimme un certain de nombre de caractere dans ma chaine avant l'extension car la taille est fixe meme si la date change
ex:
dep3_01072009.txt = dep3.txt
et
dep3_01082009.txt = dep3.txt
une idée?
et en fait cela serait mieux si il ne tenait pas compte des caracteres
juste les supprimer car quand la date change ca ne fonctionne plus
en clair le mieux serait une commande qui supprimme un certain de nombre de caractere dans ma chaine avant l'extension car la taille est fixe meme si la date change
ex:
dep3_01072009.txt = dep3.txt
et
dep3_01082009.txt = dep3.txt
une idée?
Utilisateur anonyme
8 juil. 2009 à 12:43
8 juil. 2009 à 12:43
Salut,
Ben tu renomme tout en dep3.txt ^^
A+
Ben tu renomme tout en dep3.txt ^^
ren *.txt dep3.txt
A+
merci j'y avais pensé c que le soucis j'ai plusieurs fichiers comme cela
dep3_01072009.txt
dep4_01072009.txt
dep5_01072009.txt
dep3_01072009.txt
dep4_01072009.txt
dep5_01072009.txt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
8 juil. 2009 à 13:09
8 juil. 2009 à 13:09
Salut, pour l'instand j'ai ceci :
C'est très rudimentaire, mais pour l'instand, c'est tout se que j'ai. Cela permet de renommer tout les fichiers qui commencent par "dep3"
Si tu as des fichiers dep3, puis dep4, dep5...
On peut faire une boucle avec un incrémentation (+1 à chaque fois)
Quels sont les noms de tes fichiers ?
Combien en as-tu ?
Les nombres de "dep" se suivent-ils ?
@echo off cls set NB=0 set NB=3 dir "%CD%\dep%NB%*.txt" /B > temp.txt set X=0 set /p X=< temp.txt ren %X% dep%NB%.txt set /a NB=%NB% + 1 del temp.txt
C'est très rudimentaire, mais pour l'instand, c'est tout se que j'ai. Cela permet de renommer tout les fichiers qui commencent par "dep3"
Si tu as des fichiers dep3, puis dep4, dep5...
On peut faire une boucle avec un incrémentation (+1 à chaque fois)
Quels sont les noms de tes fichiers ?
Combien en as-tu ?
Les nombres de "dep" se suivent-ils ?
merci pour ton aide
nombre de fichier 5
c'est vraiment ce qu'il y a avant l'extension qui reste fixe et donc possible de supprimer
mais bon comment faire lol
dep 1 à 2_01072009.txt
dep 3_01072009.txt
dep 4_01072009.txt
dep 4Neg_01072009.txt
dep 5_01072009.txt
n'y aurait il pas une commande ou fonction qui supprime un nombre x de caractere en batch a gauche du point de l'extension?
nombre de fichier 5
c'est vraiment ce qu'il y a avant l'extension qui reste fixe et donc possible de supprimer
mais bon comment faire lol
dep 1 à 2_01072009.txt
dep 3_01072009.txt
dep 4_01072009.txt
dep 4Neg_01072009.txt
dep 5_01072009.txt
n'y aurait il pas une commande ou fonction qui supprime un nombre x de caractere en batch a gauche du point de l'extension?
Utilisateur anonyme
8 juil. 2009 à 13:38
8 juil. 2009 à 13:38
Salut, non je ne pense pas qu'il existe ce genre de commande ^^
Si tu as juste 5 fichiers, on peut alors juste faire :
Et pareil avec les autres...
Si tu as juste 5 fichiers, on peut alors juste faire :
ren "%CD%\dep 3_01072009.txt" dep3.txt
Et pareil avec les autres...
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
8 juil. 2009 à 14:13
8 juil. 2009 à 14:13
Bonjour
Est-ce que cela correspond mieux à ton attente ?
Résultats:
"Pour test .txt"
"Pour test : dep4 Neg"
"Pour test : dep4 Neg.txt"
Appuyez sur une touche pour continuer...
Est-ce que cela correspond mieux à ton attente ?
set "test=dep4 Neg_01072009.txt" FOR %%F IN ("%test%") DO ( SET "nom_ext=%%~nxF" SET "ext=%%~xF" echo "Pour test !ext!" ) rem Extraction de tous les c. de la chaine %test% sauf les %n% derniers. set "gener=%test:~0,-13% echo "Pour test : !gener!" set "caract=!gener!!ext!" echo "Pour test : !caract!" ......................--
Résultats:
"Pour test .txt"
"Pour test : dep4 Neg"
"Pour test : dep4 Neg.txt"
Appuyez sur une touche pour continuer...
merci de vos réponses ca m'aide
cchristian ton code récupère bien
la chaine ke je veux c'est a dire dep4 Neg dans gener
je le vois dans la fenetre dos mais o final mon fichier n'est pas modifié.....
dois je faire un rename avec?
le soucis c vraiment qu'avec le batch je puisse modifier ces 5 fichiers
dep1à2_010072009=dep1à2.txt
.
.
.
dep5_01072009=dep5.txt
de plus le mois prochain cela sera
dep1à2_01082009=dep1à2.txt
.
.
dep5_01082009dep5.txt
merci encore
cchristian ton code récupère bien
la chaine ke je veux c'est a dire dep4 Neg dans gener
je le vois dans la fenetre dos mais o final mon fichier n'est pas modifié.....
dois je faire un rename avec?
le soucis c vraiment qu'avec le batch je puisse modifier ces 5 fichiers
dep1à2_010072009=dep1à2.txt
.
.
.
dep5_01072009=dep5.txt
de plus le mois prochain cela sera
dep1à2_01082009=dep1à2.txt
.
.
dep5_01082009dep5.txt
merci encore
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
8 juil. 2009 à 17:30
8 juil. 2009 à 17:30
Bonjour,
Voici une nouvelle version, dis moi ce que tu en penses :
Voici une nouvelle version, dis moi ce que tu en penses :
SETLOCAL ENABLEdelayedExpansion SETLOCAL ENABLEextensions CLS echo off rem différents tests effectués: set "test=dep4 Neg_01072009.txt" rem dept4 Neg.txt set "test=dep1à2_010072009.txt" rem dept1à2.txt set "test=dep5_01072009" rem dept5.txt set "test=dep1à2_01082009" rem =dep1à2.txt set "test=dep5_01082009" rem dep5.txt FOR %%F IN ("%test%") DO ( SET "nom_ext=%%~nxF" SET "ext=%%~xF" echo " pour test !ext!" ) if "%ext%" == "" ( set "gener=%test:~0,-9%" rem Si pas d'extension on force .txt ?<== set "ext=.txt" ) else ( set "gener=%test:~0,-13%" ) echo "Pour test : !gener!" set "file_caract=!gener!!ext!" echo "Pour test : !file_caract!" rem ICI TU PEUX FAIRE UN RENAME DE TON FICHIER AVEC file_caract
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
9 juil. 2009 à 01:02
9 juil. 2009 à 01:02
Bonsoir,
Une dernière version qui tient compte du caractère "à" présent dans certains noms de fichier (discussion Accent dans un bat) :
Une dernière version qui tient compte du caractère "à" présent dans certains noms de fichier (discussion Accent dans un bat) :
echo off SETLOCAL ENABLEdelayedExpansion SETLOCAL ENABLEextensions CLS echo off set "_chaineZ=dep4 Neg_01072009.txt" rem dept4 Neg.txt set "_chaineZ=dep1à2_01072009.txt" rem dept1à2.txt set "_chaineZ=dep5_01072009" rem dept5.txt set "_chaineZ=dep1à2_01082009" rem =dep1à2.txt set "_chaineZ=dep5_01082009" rem dep5.txt set "_chaineZ=dep4 Neg_01072009.txt" set "_chaineZ=dep1à2_01072009.txt" rem dept1a2.txt rem Boucle de recherche du caractère "à" . Si trouvé(s) remplacement rem par "a". SET /A "_borne=128" SET "test=" FOR /L %%I IN (0,1,!_borne!) DO ( IF "!_chaineZ:~%%I,1!" == "à" ( SET "test=!test!a" ) ELSE ( SET "test=!test!!_chaineZ:~%%I,1!" ) ) rem Extraction de l'extension du nom du fichier à renommer: FOR %%F IN ("%test%") DO ( SET "nom_ext=%%~nxF" SET "ext=%%~xF" ) rem echo " pour test !ext!" ) rem Extraction des n derniers caractères de la chaine %test%. IF "%ext%" == "" ( SET "gener=%test:~0,-9%" rem Si pas d'extension on force .txt ? SET "ext=.txt" ) ELSE ( SET "gener=%test:~0,-13%" ) rem echo "Pour test : !gener!" rem Reconstitution du nom du fichier sans la date et le "_". SET "gener=!gener!!ext!" echo "Pour test : !gener!" rem ICI TU PEUX FAIRE UN RENAME DE TON FICHIER AVEC gener goto :EOF