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 :

Scipt Batch Renommage de fichier


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut [résolu] Scipt Batch Renommage de fichier sans renommer anciens
    Bonjour à tous,

    Normalement, je ne suis pas la personne qui demande des conseils, je suis plutot de l'autre côté, de celui qui en donne...Mais là, on peut dire que je suis coincé!

    Donc voici le problème que j'ai :
    J'essaye de construire un script en batch qui aurait les fonctions suivante.
    J'ai disons un répertoire (en réalité, une partie de serveur) qui doit recevoir des fichiers d'utilisateur X ou Y peu importe. Dans ce répertoire, il y a des sous répertoire. Le but est de renommer en permanence les fichiers que viennent déposer les utilisateurs afin d'avoir une sorte de versioning automatique. Le fichier renommé devra avoir la forme [nom fichier] - [YYYYMMDD] - [hh] - [mm].*

    Pour l'instant le renommage ne pose pas de problème.
    Toutefois je n'arrive pas à trouver l'idée pour qu'un fichier déjà renommé ne soit pas renommé encore une fois...c'est bien là le problème

    Donc j'ai mis en place un caractère de controle et mon fichier peut ressembler à ça, soit "#[nom fichier] - [YYYYMMDD] - [hh] - [mm].*" ou bien "[nom fichier] - [YYYYMMDD] - [hh] - [mm]#.*"

    Le "#" est le caractère de controle mais je n'arrive pas à le récupérer pour pouvoir faire ma comparaison IF NOT [nom fichier tronqué au dernier caractère] == # REN ....

    Si quelqu'un avait une idée...même pour le faire autrement...

    Merci d'avance!

  2. #2
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut
    Pour l'instant, ce n'est que peu de chose, mais ça fonctionne comme ça, pour l'exemple de renommage!

    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
    @echo ON
    
    cls
    
    
    REM --------------------------------------------------------
    REM
    REM Renommage des fichiers
    REM 
    REM --------------------------------------------------------
    
    
    for /F "tokens=1,2 delims=:" %%g in ('time/T') DO (set heure=%%g-%%h)
    
    Echo %heure%
    
    for /r "C:\Test\" %%i in (*.*) do ren "%%i" "%%~ni-%date:~0,2%-%date:~3,2%-%date:~6,4%-%heure%%%~xi"

  3. #3
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    Bonjour,

    On peu mettre résolu alors

  4. #4
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut
    Non non il me manque le fait de controler si oui ou non le fichier a deja été renommé...
    Si oui -> on le renomme pas
    Si non -> on le renomme

  5. #5
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    Bonjour,

    pas encore

    alors pourquoi ne pas utilisé une expression régulière avec Findstr /r "^#" dans une boucle ou bien une condition qui va tester si une variable x contient dans sa chaîne de caractère le caractère # du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set var_first=%var_first:~0,1%
     Set var_last=%var_last:~-1%
     If %var_first%==#  If %var_last%==#  Echo OK
    j'espère que c'est ce que tu cherches

  6. #6
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Par défaut
    Ah oui c'est exactement ce que je cherchais!!!
    Je ne suis pas au bureau donc je testerai Lundi...merci en tout cas!

Discussions similaires

  1. [Batch] Batch renommage fichier
    Par okoama dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 24/05/2012, 16h06
  2. Renommage de fichiers par Batch
    Par rpascal60 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 09/04/2009, 09h47
  3. [batch] renommage de fichiers dans des rep enfants
    Par khayyam90 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 25/08/2005, 09h03
  4. [batch] renommer un fichier avec la date
    Par arcane dans le forum Windows
    Réponses: 3
    Dernier message: 13/05/2005, 14h32
  5. [BATCH]Suppression de fichier
    Par alxkid dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 21/04/2004, 13h25

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