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 :

Script Windows ne s'exécute pas [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut Script Windows ne s'exécute pas
    Bonjour,

    J'ai créé un script en .exe qui a pour but de renommer des fichiers et des les déplacer vers un autre dossier.
    Lorsque je le lance manuellement il fonctionne.
    Je souhaite l'abonner via une tâche batch pour qu'il s'exécute toutes les 15 minutes. Il se trouve sur un Windows Server 2003.
    Une fois créé je vois la tâche batch qui indique bien heure de la dernière exécution, heure de la prochaine exécution mais les fichiers ne bougent pas.
    Comme si la tâche batch ne s’exécutait correctement qu'une fois et après elle ne lançait pas le script. De quoi cela vient-il ?

  2. #2
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Bonjour à toi,

    Avec quel compte est lancé la tache ?
    Tu n'aurais pas un problème de droits ?
    Est-ce que les fichiers ne serais pas situé sur un lecteur réseau qui donc ne serait pas monté dans l'environnement d’exécution de la tache ?

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    En dernier résultat je vois que j'ai le code : 0x40010004
    Le script est dans un sous dossier sur la lettre F:. Cà n'est pas un lecteur mais un disque dur au même titre que le C:
    Le script est exécutable par l'admin en manuel. Pour moi la tâche batch aussi puisque quand je modifie la tâche il me demande de le code et mot de passe admin.

  4. #4
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Ok, donc déjà deux pistes en théories à ne pas suivre.

    Par contre, comme c'est toi qui à créé l’exécutable qui fait le traitement, tu te simplifierais énormément dans le recherche du problème en rajoutant de la trace dans ton programme.
    Pour savoir précisément ce qu'il se passe à chaque étape et déterminer au final ce qui bloque

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Que dois-je faire pour avoir la trace ?

  6. #6
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    C'est dans ton programme de base !
    Avec quoi tu l'as réaliser ?

  7. #7
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    C'est pas moi qui l'a réalisé.
    On m'a écrit un petit bout de code. Puis créer un exécutable à lancer manuellement.
    Moi je voudrais que cette exécutable se lance toutes les 15 minutes via un batch.

  8. #8
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    ????
    J'ai créé un script en .exe qui a pour but de renommer des fichiers et des les déplacer vers un autre dossier.
    C'est pas moi qui l'a réalisé.
    Faut que tu m'explique là !

    En tous cas avec le peu d'infos que tu as donné pour le moment...
    Commence par coller le script que tu as placé dans ta tache planifié afin qu'on puisse regarder ça.

  9. #9
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Oui j'ai mis "j'ai créé", c'est "on m'a créé sur mon système".

    Où je peux le script et l'exécutable depuis Developpez.net ?

  10. #10
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Ton script c'est du texte non ?
    Donc tu le copie/colle dans le topic.
    En le mettant bien entre balise code, bouton # voir ma signature si tu n'as jamais fais.

  11. #11
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Voilà :
    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
    #include <File.au3>
    
    $dir = @scriptdir & "\\192.168.1.6\x3v5\SRVBDD_X3A\dossiers\LSN\YSMS\KO\"
    $dir2= @scriptdir & "\\192.168.1.6\x3v5\SRVBDD_X3A\dossiers\LSN\YSMS\IN\"
    
    $aFileList = _FileListToArray($dir, "*.err")
    If @error = 1 or @error = 4 Then
            MsgBox($MB_SYSTEMMODAL, "", "Pas de fichier")
            Exit
    EndIf
    $i = 1
    
    while $i <= $aFileList[0]
    $nom = StringTrimRight ($aFileList[$i] ,4)
    FileMove($dir & $aFileList[$i], $dir2 & $nom)
    $i = $i + 1
    wend
    Pour rappel j'ai un fichier qui est mon script en .au3, puis un .exe qui exécute le script. Lancé manuellement le .exe fonctionne est le script fait soon boulot.
    C'est quand j'abonne le .exe en batch qui rien ne se passe et que j'ai le fameux code 0x40010004

  12. #12
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Bon déjà ça c'est problématique !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox($MB_SYSTEMMODAL, "", "Pas de fichier")
    Tu lance ça en arrière plan via une tâche planifiée !
    Donc en gros si la messagebox apparaît le truc reste coincé......

    Tu me parle d'un lecteur F:, pourtant dans ton script je vois des chemins réseau UNC :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dir = @scriptdir & "\\192.168.1.6\x3v5\SRVBDD_X3A\dossiers\LSN\YSMS\KO\"
    $dir2= @scriptdir & "\\192.168.1.6\x3v5\SRVBDD_X3A\dossiers\LSN\YSMS\IN\"
    Ensuite on est d'accord que dans ce que tu dis ici :
    Pour rappel j'ai un fichier qui est mon script en .au3, puis un .exe qui exécute le script. Lancé manuellement le .exe fonctionne est le script fait soon boulot.
    C'est quand j'abonne le .exe en batch qui rien ne se passe et que j'ai le fameux code 0x40010004
    Tu indique bien que ton script AutoIT (.au3) est compilé en .exe
    Que quand tu le lance manuellement il fait le job mais que quand tu le lance depuis ton Bat de la tâche planifiée ça fonctionne plus ?

    Met ici aussi le contenu du Bat qui lance l'exe !

    Ensuite dans ton script AutoIt il y a des choses qui en l'état ne peuvent assolement pas fonctionner !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dir = @scriptdir & "\\192.168.1.6\x3v5\SRVBDD_X3A\dossiers\LSN\YSMS\KO\"
    $dir2= @scriptdir & "\\192.168.1.6\x3v5\SRVBDD_X3A\dossiers\LSN\YSMS\IN\"
    Ici tu concatène le chemin d'exécution du script avec un chemin UNC......
    Donc si par exemple ton script est placé dans C:\Temp $dir va contenir => C:\Temp\\192.168.1.6\x3v5\SRVBDD_X3A\dossiers\LSN\YSMS\KO\

    Donc en gros je suis sur à 99% que quand tu test ton script à la main tu obtiens la messagebox qui indique Pas de fichier
    Donc forcément quand la tâche planifié lance ce même script (si tant est qu'elle y arrive), la messagebox se lance aussi et le truc reste en l'état.
    Elle est surement terminée en force en fonction des paramètre que tu as placé dans la tache.

  13. #13
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Désolé j'avais refait des tests ce matin le code pour le chemin à l'origine c'est çà :
    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
    #include <File.au3>
    
    $dir = @scriptdir & "\KO\"
    $dir2= @scriptdir & "\IN\"
    
    $aFileList = _FileListToArray($dir, "*.err")
    If @error = 1 or @error = 4 Then
            MsgBox($MB_SYSTEMMODAL, "", "Pas de fichier")
            Exit
    EndIf
    $i = 1
    
    while $i <= $aFileList[0]
    $nom = StringTrimRight ($aFileList[$i] ,4)
    FileMove($dir & $aFileList[$i], $dir2 & $nom)
    $i = $i + 1
    wend
    Voici la capture de ma tache batch :
    Nom : BATCH.png
Affichages : 930
Taille : 10,5 Ko

  14. #14
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Bon j'abandonne là !
    Tu réponds même pas à tout ce que je t'ai indiqué.......

  15. #15
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Attend j'étais en train de répondre.

    J'ai bien compris qu'il y a des lignes que je dois enlever. J'en lève juste cette ligne de code, je ne rajoute rien à la place ?
    Sinon c'est manuellement cela fonctionne mais plus quand c'est abonné en batch.

  16. #16
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Bon une dernière fois !
    Faut que ce soit clair sinon j'abandonne.

    Quand tu lance le script à la main, il fait quoi ?
    Tu as des fichiers .err ou bien tu obtiens la messagebox ?

    Ensuite, j'imagine que lorsque tu fait le traitement, s'il n'y a pas de fichier .err tu ne fais rien.
    Donc en effet, tu vire la ligne avec la messagebox elle ne sert à rien dans le cas d'un traitement en arrière plan.

  17. #17
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Je vais essayer d'être clair.
    J'ai un logiciel qui vient mettre des fichiers en .err dans le dossier KO.
    Mon script a pour but d'enlever le .err pour qu'il redevienne un fichier .txt et les envoi dans le dossier IN.
    Quand je lance le .exe manuellement qui gère le script .au3 cela fonctionne. Quand le .exe est lancé depuis la tâche batch rien ne se passe.

    Est-ce plus clair ?

  18. #18
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Bon de ce que je constate la tâche batch abonné se lance correctement même abonné mais qu'une seule fois.
    C'est à dire que quand j'arrête la tâche et que je la relance elle exécute bien le .exe, mais après toutes les 10 minutes cela ne fonctionne plus.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/12/2015, 22h45
  2. [10gR2] Script qui ne s'exécute pas correctement
    Par hazzab dans le forum SQL
    Réponses: 2
    Dernier message: 19/11/2015, 10h10
  3. Réponses: 2
    Dernier message: 30/06/2011, 14h59
  4. Réponses: 2
    Dernier message: 02/12/2010, 16h54
  5. Le script serveur ne s'exécute pas dans une page aspx.
    Par laurent_diep dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/02/2007, 21h27

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