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 :

Ne pas renommer les fichiers avec extension .bat


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut Ne pas renommer les fichiers avec extension .bat
    Bonjour!

    J'ai un script en batch pour renommer des fichiers de différentes extensions dans un répertoire à partir du fichier names.txt.

    Problème: Le script en question renomme aussi les fichiers avec extension .bat

    Question: Que dois-je ajouter dans le script ci-dessous pour ignorer les fichiers .bat ?

    Remarque: Même le fichier names.txt est renommé avec le lot

    Code Batch : 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
    @ECHO OFF
    SETLOCAL ENABLEDELAYEDEXPANSION
    CHCP 1252
     
    rem Load the list of new filenames
    set i=0
    for /F "delims=" %%a in (names.txt) do (
       set /A i+=1
       set "newname[!i!]=%%a"
    )
    rem Do the rename:
    set i=0
    for /F "delims=" %%a in ('dir /b /o:n *.*') do (
       set /A i+=1
       for %%i in (!i!) do ren "%%a" "!newname[%%i]!"
    )

    Merci de bien vouloir m'aider.

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Pouvez-vous poster le contenu du fichier names.txt ?
    Sinon, tester cette modification pour exclure les fichiers avec les extensions .bat et .txt

    Code BAT : 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
    @ECHO OFF
    SETLOCAL ENABLEDELAYEDEXPANSION
    CHCP 65001>Nul
     
    set i=0
    for /F "delims=" %%a in (names.txt) do (
       set /A i+=1
       set "newname[!i!]=%%a"
    )
     
    Set i=0
    for /F "delims=" %%a in ('dir /B /A-D /o:n *.*') do (
        Set /A i+=1
        for %%i in (!i!) do (
            If not [%%~xa] EQU [.bat] (
                If not [%%~xa] EQU [.txt] (
                    echo ren "%%a" "!newname[%%i]!"
                )
            )
        )
    )
    pause

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut
    Bonjour hackoofr

    Le fichier names.txt contient une liste de fichiers de différentes extensions. Cette liste va me servir à renommer des fichiers.

    Votre script me convient. Merci

    Autre chose

    J'ai modifié le début du script pour pouvoir traiter n'importe quel nom de fichier.txt

    Avant:

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set i=0
    for /F "delims=" %%a in (names.txt) do (
       set /A i+=1
       set "newname[!i!]=%%a"
    )

    Après:

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    set /p name=^> 
    set i=0
    for /f "delims=" %%a in (%name%.txt) do (
        set /A i+=1
        set "newname[!i!]=%%a"
    )


    Problème:

    Si le fichier.txt (par exemple, names.txt a des espaces comme my list of names.txt) le script ne renomme aucun fichier.

    Que dois-je ajouter pour que cela fonctionne ?

    Je sais qu'il faut ajouter des guillemets entre un nom avec 1 ou des espaces ( "my list" )

    J'ai essayé mais je n'y arrive pas.

    Merci de bien vouloir m'aider.

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/02/2019, 12h10
  2. comment lire les fichiers avec extension .ele
    Par Amel_B dans le forum Logiciels Libres & Open Source
    Réponses: 5
    Dernier message: 14/05/2015, 09h28
  3. C'est quoi les fichiers avec extension.txvpck
    Par pierrot67 dans le forum Débuter
    Réponses: 2
    Dernier message: 17/11/2011, 09h17
  4. Réponses: 3
    Dernier message: 11/05/2010, 19h51
  5. Réponses: 11
    Dernier message: 19/11/2006, 12h45

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