Script Batch

Bonjour,
je voudrais renommer des fichier a l'aide d'un script Batch.
J'ai un logiciel qui me met de numéros suivie d'un espace devant mes nom de fichiers.
Je voudrais supprimer les 3 premiers caractères de chaque fichier, quelqu'un aurait une idées?
Merci d'avance
Configuration: Windows XP
Firefox 3.0.1

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonsoir,

    Tu as dit 2 caractères suivi d'un espace puis autres caractères; si la stucture est la bonne alors ce batch va fonctionner :
    exemple : 12 file.doc va devenir 12file.doc

    Ce batch traîte tous les fichiers *.* du repertoire en cours vous pouvez spécifier une extension *.doc,*.txt,...etc
    tu peux l'améliorer pour le rendre plus performent. ;)

    @echo off
    
    Setlocal enabledelayedexpansion
    
    For /f "tokens=*" %%z In ('dir /b /a-d "*.*"') Do (
    Set var=%%~z 
    Set varL=!var: =!
    ren "!var!" !varL!
     
     )
    
    endlocal


    bon codage
    1. J'ai essayer le script mais il me dit "le fichier spécifier est introuvable"
      1. Bonsoir,

        Le problème n'est pas dans le code, il marche à la perfection..

        pour tester :

        créez un dossier TEST par exemple, y mettre le fichier batch et des fichiers qui portent un nom ayant la structure suivante :
        12 file2.txt
        0p my_file.doc
        54 test3.xml
        ..etc
        


        structure : 2 caractères + un espace + un nombre de caractères + point + extension

        double clique sur le fichier batch ou appelles-le de ton invite de commande ça donnera comme resultat ceci :

        file2.txt
        my_file.doc
        test3.xml
        
        1. C'est ce que j'ai fais, le problème c'est que ca marche quand je test avec des fichiers que je crée.
          Mais sur les fichiers que je copie ça ne fait rien :s

          Par Exemple je copie 14 DSC.jpg et je crée 12 DSCDFG.jpg
          je récupère 14 DSC.jpg et DSCDFG.jpg
          et ci je lance le script une deuxième fois j'obtiens 14 DSC.jpg et DFG.jpg

          Tu a une idée?
          Merci d'avance
          1. Merci de ta réponse, je vais essayer ca.
            Mais je voudrais que le script me suprime les deux premiers caratéres
            par exemple 12 file.exe deviendrait file.exe, je voudrais surprimer les 2caractere et l'espace
            Merci d"avance
            1. code qui marche :

              @echo off
              
              Setlocal enabledelayedexpansion
              
              For /f "tokens=*" %%z In ('dir /b /a-d "*.*"') Do (
              
              Set var=%%~z
              If !var! NEQ %~nx0 ( 
              Set varL=!var: =!
              Set varL=!var:~2!
              Ren "!var!" !varL!
               )
               )
              
              endlocal