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 :

Rename a file onto a Specific Path [DOS] [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Par défaut Rename a file onto a Specific Path [DOS]
    Hello,
    J'essaie d'exécuter les opérations suivantes dans un dossier spécifique:
    1- Renommer le fichier en supprimant les Espaces
    2- Renommer le fichier en remplaçant les tirets "-" par underscore"_"
    3- Déplacer le fichiers vers un autre dossier

    voilà ce que j'essaie:

    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
    23
    rem 1- Suppression des espaces dans le nom des fichiers 
    @echo off 
    setlocal enableextensions enabledelayedexpansion 
     
    for /r "D:\Dir1\Dir2\Dir3" %%f in (*.edi) do ( 
    set ARG=%%~nxf 
    rename "%%f" !ARG: =! 
    ) 
     
     
    rem 2 - replace tiret 
    for /r "D:\Dir1\Dir2\Dir3" %%f in (*-*.edi) 
    do call : ProcessFile %%f 
    goto :finished 
    : ProcessFile 
    set str=%1 
    rename %1 %str:-=_% 
    :finished 
     
     
    rem 2- Deplacement des fichiers 
     
    MOVE "D:\Dir1\Dir2\Dir3\*.edi" "D:\Dir1\Dir2\Dir10"


    => le script ne fonctionne que lorsque je l'exécute directement à partir du dossier contenant les fichiers: J'aimerais pouvoir l'exécuter à partir d'un autre dossier

    => lorsque je l'exécute à partir d'un autre dossier il n'y a que le 1 et 3 qui s'exécutent.

    => lorsque j'exécute le 2 séparément à partir de la console DOS j'ai le message: Syntaxe incorrecte.

    NB: L'objectif pour moi est de scheduler ce Bat à l'aide d'un utilitaire.va donc se poser le problème du répertoire courant ou s’exécute le batch.

    Merci infiniment de votre aide.

  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
    Par défaut
    Pourquoi ne fais-tu pas directement tout en une passe :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    @echo off
    setlocal enabledelayedexpansion
     
    for /r "D:\Dir1\Dir2\Dir3" %%f in (*.edi) do ( 
    set "ARG=%%~nxf"
    set "ARG=!ARG: =!"
    set "ARG=!ARG:-=_!"
    rename "%%f" !ARG!
    )
     
    MOVE "D:\Dir1\Dir2\Dir3\*.edi" "D:\Dir1\Dir2\Dir10"


  3. #3
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Par défaut
    Absolument rien à y rajouter=> ça marche à la perfection. MErci infiniment

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. rename() : Cannot rename a file across wrapper types
    Par nico.riv dans le forum Langage
    Réponses: 1
    Dernier message: 05/11/2009, 11h08
  2. [C# 1.1] Comment convertir Path complexe au Format DOS ?
    Par elsargento dans le forum Contribuez
    Réponses: 2
    Dernier message: 23/01/2006, 16h36
  3. Réponses: 2
    Dernier message: 30/08/2005, 14h11
  4. Quel etait le secret de Rapid File, la bdd sous DOS
    Par Robert A. dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 27/05/2003, 04h53

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