Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur dans mon code Batch

Mon fichier batch se ferme alors qu'il n'y a pas d'erreur

Sujet résolu
    11 mars 2019 à 11:17:21

    Bonjour, 

    Pour un projet C# j'ai besoin d'utiliser le batch pour automatiser certaines tâches, j'utilise donc un fichier qui doit récupérer la date d'un fichier donné.

    Cependant lorsque mon batch arrive à la commande qui récupère cette dite date, ce dernier se ferme sans exécuter la suite des instructions...

    J'ai déjà testé les commandes lignes par lignes dans le cmd avec la même syntaxe et ça marche correctement.

    Pouvez-vous m'aider?

    Voici le code du fichier batch (appelé par un autre fichier batch a l'aide de "call batch var1 var2 var3"

    net use y: /delete
    pause
    :t01
    net use y: \\77.77.%1.77\D$ test /user:test\ADM
    IF errorlevel 1 goto err1
    goto tverif
    
    :tverif
    Y:
    cd SystemP
    
    echo %1 %2 %3
    IF not exist %2 goto err3
    for %a in (%2) do set FileDate=%~ta
    set FileDate=%FileDate:~0,10%_%FileDate:~11,15%
    set %3 = %3:~0,10%_%3:~11,15%
    if %FileDate% == %3 goto fin
    echo %1 %FileDate% >> C:\Users\x\log.txt
    pause
    goto fin
    
    :err1
    echo "----------------------------"  >>  C:\Users\x\erreur.txt
    echo "ERREUR CONNECTION EMPLACEMENT: " %1 >>  C:\Users\x\erreur.txt
    echo "----------------------------"  >>  C:\Users\x\erreur.txt
    goto fin
    
    :err2
    echo "----------------------------" >>  C:\Users\x\erreur.txt
    echo "ERREUR COPIE X: " %1     >>  C:\Users\x\erreur.txt
    echo "----------------------------" >>  C:\Users\x\erreur.txt
    goto fin
    
    :err3
    echo "----------------------------"  >>  C:\Users\x\erreur.txt
    echo "ERREUR PROGRAMME INTROUVABLE DANS L'EMPLACEMENT: " %1 >>  C:\Users\x\erreur.txt
    echo "----------------------------"  >>  C:\Users\x\erreur.txt
    goto fin
    
    :fin
    C:

    Les variables "var1" "var2" "var3" appelées par un fichier batch correspondent à : 
    var 1 : une partie d'une IP, var 2 : unProgramme.exe, var 3 : uneDate

    Le problème se situe ligne 14, la commande "for %a in (%2) do set FileDate=%~ta" fait crash le programme, je m'en suis rendu compte après avoir mis des "pause" un peu partout, et c'est bien ligne 12 que sa crash, pourtant lorsque j’exécute cette commande manuellement et que je remplace le %2 par un nom de programme manuellement, tout se passe bien...

    Merci de votre aide! 

    -
    Edité par Mawops 11 mars 2019 à 11:30:18

    • Partager sur Facebook
    • Partager sur Twitter
      11 mars 2019 à 12:22:21

      Bonjour,

      L'aide de la commande for indique :

      Pour utiliser la commande FOR dans un programme de commandes, spécifiez

      %%variable au lieu de %variable. Les noms de variables respectent la

      casse, donc %i est différent de %I.

      Remplace ta ligne 14 par :

      for %%a in (%2) do set FileDate=%%~ta


      ça devrait résoudre ton problème.

      • Partager sur Facebook
      • Partager sur Twitter
        11 mars 2019 à 14:13:56

        Effectivement, problème résolu.

        Merci de ta part Zaibai!

        • Partager sur Facebook
        • Partager sur Twitter

        Erreur dans mon code Batch

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown