IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Renommer fichier dans dossiers(remplacer chaine de caracteres)


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut Renommer fichier dans dossiers(remplacer chaine de caracteres)
    Bonjour,
    Je cherche a remplacer la chaine de caractere XXX dans les noms de fichiers d'un dossier et de ses sous dossiers. Exemple : soumission XXX.xls par soumission 001.xls. Je n'ai pas réussi a le faire.
    Ce que j'ai pour le moment:

    FOR /r %%i IN ( *XXX* ) DO REN *XXX* *NEW*

    Si jamais une âme charitable aurait quelques minutes pour m'aider pour mon .bat,se serait apprécier!

    Merci

  2. #2
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Sa lut,

    Littérallement selon l'énoncer de ton problème (remplacer chaine de caractère)
    un moyen est la substitution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set nom=soumission XXX
    set nom=%nom:XXX=NEW%
    echo %nom%
    Résultat

    Sinon selon le problème REN fait l'affaire !

    Maintenant on ne sais pas comment et où tu récupères le nom des fichiers
    que tu veux modifier.

    Détail un peu mieux ton problème !

    Amicalement
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    Bonjour sachadee,
    Merci pour l'intéret.
    Premièrement, mon but est de copier plusieurs fois un dossier modèle de soumission et de les numéroter. J'ai écrit un ''brouillon'' du programme qui n'est pas encore au point. Note que je n'ai pas mis encore les chemins en nom courts. Puisque le XXX n'est pas toujours situé à la même place dans un nom de fichier, je doit le trouver et le remplacer.
    Désoler pour mon manque de connaissance j'ai lue beaucoup mais je ramme un peu; je ne connais que l'assembleur comme prog pour le moment et je veux apprendre comment faire les .bat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ::Copie 20 foix le dossier modele  dans temp puis une fois traité le remet dans \soumission
    For %%j in (1,1,20) do (
    	xcopy C:\soumission\Modele %temp%
    	cd %temp%\Modele
    	::renomme tout les fichier du répertoire aillant XXX (Numéro de soumission-->XXX)
    	FOR /r %%f IN ( *XXX* ) DO REN *XXX* %j%
    	cd ..
    	ren \Modele \Soumission%J%
    	::remet le dossier de soummission à la bonne place une fois renomé
    	xcopy \Soumission%J%  C:\soumission\Soumission%J%
    )
    ::Vide le temp.
    CD %temp%
    del /q /f /s *.*
    exit

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 26
    Points : 10
    Points
    10
    Par défaut
    J’espère ne pas trop vous avoir fait peurs

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 4
    Points : 7
    Points
    7
    Par défaut Une autre approche au problème de renommage en masse
    Une petite erreur s'insère en fin de script lors du traitement...je n'ai pas eu le temps de rechercher le pourquoi comment...mais bon ça fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    rem FB:Yann-Guilhem Guichard
    rem debbog@free.fr
    rem 2017
    
    MODE CON: CP SELECT=1252 
    MODE CON: COLS=95 LINES=23
    
    @echo off
    setlocal enabledelayedexpansion
    
    :LANCEMENT
    echo.
    echo RENOMMER LES FICHIERS D'UN DOSSIER AVEC UN PREFIXE (ex: xxxx_nom.*)
    echo.
    
    set /p cible="Nom du dossier cible : "
    set /p mot="Prefixe a ajouter: "   
    
    if exist "%cible%" (
    	echo.
    	echo Le dossier cible existe...
    	echo.
    	echo.
    	echo Lancement de la procedure de 
    	echo renommage des fichiers du dossier
    	echo.
    	echo.
    
    	for %%I IN (%cible%\*.*) DO (
    		set fichierA=%%~nxI
    		set fichierB="%mot%!fichierA!"
    
    		echo !fichierB!
    		ren %%I !fichierB!	
    	)
    
    	echo.
    	echo Resultat du renommage
    	echo.
    	dir %cible% /D
    )
    
    if not exist "%cible%"(
    	echo.
    	echo Le dossier "%cible%" est introuvable
    	echo.
    	pause
    	goto :LANCEMENT
    )
    endlocal
    
    :RELANCER
    cls
    echo.
    set /p choix="Un autre renommage à faire ? [o/n]: "
    
    if %choix%=="o" goto :LANCEMENT
    if %choix%=="n" goto :QUITTER
    
    :QUITTER
    exit

Discussions similaires

  1. Copier 1 fichier dans dossiers 1er niveau
    Par halphorg dans le forum Windows
    Réponses: 2
    Dernier message: 09/03/2008, 19h32
  2. remplacer chaine de caractere msdos
    Par sculpteur dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 21/11/2007, 09h30
  3. remplacer chaine de caractere dans un fichier
    Par Sapache dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 28/09/2007, 17h12
  4. probleme remplacement chaine de caractere avec SED
    Par rhaamo dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 24/01/2007, 15h12
  5. Droits d'acces aux fichiers dans dossier en partage
    Par catoucat dans le forum Windows XP
    Réponses: 3
    Dernier message: 03/07/2006, 02h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo