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 :

Présence de deux fichiers avec code retour [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut Présence de deux fichiers avec code retour
    Bonjour,

    Je suis null en batch, c'est tellement simple sous Unix en shell
    J'ai fait ce code ci-dessous mais ça fonctionne pas :-(
    quelqu'un pourrait-il m'aider ?
    Merci d'avance
    Sebastien

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    @echo on
    rem If %ErrorLevel% 0 goto fin
    rem If %ErrorLevel% 1 goto error
     
    cd c:\Origine\
     
    rem Si le fichier TOTO.csv et TOTO.txt n'existe pas le programme va a la fonction mv1 et si il y a que le fichier 
    if EXIST "TOTO.csv" & "TOTO.txt" goto mv1 ELSE if EXIST "TOTO.txt" goto mv2
    If %ErrorLevel% 0 goto fin
    if %ErrorLevel% 1 goto error
     
    :mv1
    rename TOTO.csv %DATE:~6,4%%DATE:~3,2%%DATE:~0,2%_TOTO.csv
    move %DATE:~6,4%%DATE:~3,2%%DATE:~0,2%_TOTO.csv Archive
    rename TOTO.txt TOTO.csv
     
    :mv2
    rename TOTO.txt TOTO.csv
     
    :error
    echo "Le code sorti = 1"
    echo /b 1
     
    :fin
    echo "le code sorti =0"
    exit /b 0

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Et c'est quoi le problème ?

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    rem Si le fichier TOTO.csv et TOTO.txt n'existe pas le programme va a la fonction mv1 et si il y a que le fichier
    Il nous manque la fin du commentaire

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    if EXIST "TOTO.csv" & "TOTO.txt" goto mv1 ELSE if EXIST "TOTO.txt" goto mv2
    Ceci n'est pas correct

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    if EXIST "TOTO.csv" if EXIST "TOTO.csv" goto mv1
    Ceci est correct

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    :mv1
    rename TOTO.csv %DATE:~6,4%%DATE:~3,2%%DATE:~0,2%_TOTO.csv
    move %DATE:~6,4%%DATE:~3,2%%DATE:~0,2%_TOTO.csv Archive
    rename TOTO.txt TOTO.csv
     
    :mv2
    rename TOTO.txt TOTO.csv
    Attention, si le programme va dans l'étiquette mv1 il passera aussi par mv2

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut
    Merci pour ta réponse.

    J'explique ce que je cherche à faire avec le batch.
    Dans le répertoire c:\origine\ il peut y a voir une fois par jour 2 types de fichiers TOTO.csv et TOTO.txt
    A) Si il y a les 2 fichier TOTO.csv et TOTO.txt
    - renomme le fichier TOTO.csv avec la date aaaammjj_TOTO.csv et le déplace dans le répertoire Archive
    - renomme le fichier TOTO.txt en TOTO.csv

    B) si il y a qu'un fichier TOTO.txt
    - renomme le fichier en TOTO.csv

    Et bien sur le code retour si ça se passe bien = 0 sinon =1



    Suite à ta 1ere réponse j'ai refait le code, mais je sais pas si c'est bon et si le code retour est correct.

    Merci à toi si possible de me corriger si le code n'est pas ce que je souhaite faire

    Sebastien

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    @echo on
     
    cd c:\Users\Utilisateur\
     
    if EXIST "TOTO1.txt" if EXIST "TOTO2.csv" goto mv1 
    if EXIST "TOTO1.txt" goto mv2
     
    :mv1
    rename TOTO2.csv %DATE:~6,4%%DATE:~3,2%%DATE:~0,2%_TOTO2.csv
    move %DATE:~6,4%%DATE:~3,2%%DATE:~0,2%_TOTO2.csv Archive
    rename TOTO1.txt TOTO2.csv
    If %ErrorLevel% 0 goto fin
    if %ErrorLevel% 1 goto error
     
    :mv2
    rename TOTO1.txt TOTO2.csv
    If %ErrorLevel% 0 goto fin
    if %ErrorLevel% 1 goto error
     
    :error
    echo "Le code sorti = 1"
    echo /b 1
     
    :fin
    echo "le code sorti =0"
    exit /b 0

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Si je puis me permettre sur la logique du code, je ferais comme ceci
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    @echo on
     
    REM On se déplace dans le répertoire de destination
    cd "c:\Users\Utilisateur\"
     
    REM Si TOTO2.csv existe on le renomme et déplace
    if EXIST "TOTO2.csv" (
    	rename "TOTO2.csv" "%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%_TOTO2.csv"
    	move "%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%_TOTO2.csv" "Archive"
    ) || goto error
     
    REM Si TOTO1.csv existe on le renomme en TOTO2.csv
    if EXIST "TOTO1.txt" (
    	rename "TOTO1.txt" "TOTO2.csv"
    ) || goto error
     
    REM Tout c'est bien passé on va à la fin
    goto fin
     
    REM Sortie en erreur
    :error
    echo "Le code sorti = 1"
    exit /b 1
     
    REM Sortie sans erreur
    :fin
    echo "le code sorti = 0"
    exit /b 0

    A noter que :
    Je n'ai aucune confiance dans ErrorLevel pour la remonté d'information sur des commandes internes préférer ||
    Toujours essayer de mettre les paramètres entre guillemet permet de nous éviter des désagréments futurs
    Une gestion d'erreur sur cd "c:\Users\Utilisateur\" peut être ajouté
    Nous pouvons masquer les erreurs affichées par le script avec une redirection du canal de sortie d'erreur vers nul 2>nul

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Par défaut
    Bonjour,

    C'est super, j'ai fait une petite modification ça fonctionne parfaitement.
    en effet errorlevel n'est pas sur.
    Merci beaucoup pour votre aide

    Sebastien

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

Discussions similaires

  1. Comparaison deux fichiers avec cobol
    Par Babylone159 dans le forum Cobol
    Réponses: 5
    Dernier message: 03/09/2012, 12h36
  2. Comparer deux fichiers avec VBA
    Par Bricoltou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/11/2009, 23h23
  3. Réponses: 1
    Dernier message: 09/04/2009, 09h36
  4. Requetes sur deux tables avec plusieurs retour
    Par IP-Fix dans le forum Requêtes
    Réponses: 16
    Dernier message: 13/11/2008, 18h46
  5. comparer deux fichiers avec une api windows
    Par sweetdreamer dans le forum Windows
    Réponses: 4
    Dernier message: 25/05/2006, 22h10

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