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

Windows XP Discussion :

Schtasks, chemin de l'éxécutable avec des espaces, solution


Sujet :

Windows XP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Par défaut Schtasks, chemin de l'éxécutable avec des espaces, solution
    bonsoir,

    j'essaie de lancer par programmation (visual basic 2008) une commande de batch (Schtasks ...) sous XP Pro SP3. Elle fonctionne si mon exe est par exemple calc.exe,
    par contre dés que je veux executer un programme dans un des dossiers, impossible!!

    Voici ma ligne de commande: doc1
    dans la console ouverte, la tâche a bien été mise en planifié: doc2.jpg
    et le message dans le log des tâches planifiées aprés traitement: doc3.jpg


    au vu des trés nombreux essais, recherches .. je suis incapable de passer correctement le paramétre de l'arborescence du programme à exécuter et de sa cible (Démarrer dans), par contre le delete des batchs en liste est OK

    Cette tâche fonctionne si elle est définie manuellement par l'utilitaire 'Création de tâches planifiées'

    Voici le code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            ' effacer le fichier batch qui pourrait exister
            CmdLigneJob = "cmd /c schtasks.exe /delete /S \\" & S_system & " /U " & U_username & " /P " & P_password & " /TN " & TN_taskname & " /F"
            Shell(CmdLigneJob, AppWinStyle.MinimizedNoFocus, True)
    
            ' preparer les paramétres du prochain
            If Batch.Checked = True Then
                If Grab(SelGrab) = "Hebdomadaire" Then D_days = AbrevQuelJour(SelQuelJour)
                If Grab(SelGrab) = "Quotidienne" Then D_days = "*"
    
                CmdLigneJob = "cmd /k schtasks /Create /S \\" & S_system & " /U " & U_username & " /P " & P_password & " /TN " & TN_taskname & " /TR " & TR_taskrun & " /SC " & SC_schedule & " /D " & D_days & " /ST " & ST_starttime
                MsgBox(CmdLigneJob)
                Shell(CmdLigneJob, AppWinStyle.MinimizedNoFocus, True)
            End If
    le user est définit à l'éxecution: l'administrateur et son mot de passe (seul utilisateur du PC)

    Merci de votre aide, je séche!

    PS incapable de passer la troisiéme piéce jointe ! mystére
    bref le message de l'ordonanceur est de deux parties, d'abord
    1 0x00000003: Le chemin d'accés spécifié est introuvable.
    2 0x80070005: Accés refusé
    Images attachées Images attachées   

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut


    1er point : tu essaies de te connecter sur l'ordinateur distant \\ENIAC, est ce qu'il ne faudrait pas que ton chemin, des lors, ressemble à \\Eniac\mon_dossier\programme.exe ?
    inversement, Ssi le prog est executé en local, par contre, peut etre qu'il faut enlever le /S \\Eniac, non?

    2eme point : si ca marche pour calc et pas pour un autre exe, c'est probablement parce que calc est dans "path" windows. est ce que si tu changes ton path windows pour le faire pointer vers le dossier de ton executable, ca marche?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Par défaut
    Citation Envoyé par Flamby38 Voir le message


    1er point : tu essaies de te connecter sur l'ordinateur distant \\ENIAC, est ce qu'il ne faudrait pas que ton chemin, des lors, ressemble à \\Eniac\mon_dossier\programme.exe ?
    inversement, Ssi le prog est executé en local, par contre, peut etre qu'il faut enlever le /S \\Eniac, non?

    2eme point : si ca marche pour calc et pas pour un autre exe, c'est probablement parce que calc est dans "path" windows. est ce que si tu changes ton path windows pour le faire pointer vers le dossier de ton executable, ca marche?
    merci deta réponse, toutefois
    1 avec ou sans le path /S le pb est identique, Eniac est le système local, et pour le delete des travaux précédents il marche.

    Citation de la doc MS : /S system A value that specifies the remote computer to connect to



    2 si tu regardes la première piéce jointe, le path est celui du fichier à exécuter /TR \C:\......\Guide.exe que je pense mal décrire (j'ai essayé avec des quotes /TR "C:\.....\Guide.exe" , peine perdue puisque l'ordonanceur démarre mais me renvoie les deux messages d'erreur cités.

    citation doc MS : /TR taskrun A value that specifies the path and file name of the task to be run at the scheduled time. For example: C:\Windows\System32\calc.exe.

    As tu une autre piste?

    Merci et à plus

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    Citation de la doc MS : /S system A value that specifies the remote computer to connect to
    remote computer signifie bien ordinateur distant, donc via réseau, maintenant si ca marche quand meme quand tu mets ton nom d'ordinateur local, je suppose que le problème ne vient effectivement pas de là.

    quand je te parlais de path, je te parle du path windows, c'est à dire ce qui apparait quand tu tapes "path" dans dans une fenetre DOS.

    voila la manip que je te propose de tester :
    tu ouvres une fenetre de commande cmd.
    tu tapes "path"
    il va te retourner path=c:\windows;machin;truc;
    tu vas lui rajouter le dossier de ton executable en tapant la commande suivante :
    "path c:\windows;machin;truc;c:\mondossier\monfichier.exe"
    (il faut lui remettre ce que tu as vu dans le path et rajouter ton chemin).
    tu retapes "path" pour verifier que ta commande a été prise en compte.
    et enfin tu retestes ton programme voire si c'est mieux ou pas.

    C'est peut etre pas ca du tout mais bon, ca coute rien d'essayer

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Par défaut
    Citation Envoyé par Flamby38 Voir le message
    tu vas lui rajouter le dossier de ton executable en tapant la commande suivante :
    "path c:\windows;machin;truc;c:\mondossier\monfichier.exe"
    (il faut lui remettre ce que tu as vu dans le path et rajouter ton chemin).
    tu retapes "path" pour verifier que ta commande a été prise en compte.
    et enfin tu retestes ton programme voire si c'est mieux ou pas.

    C'est peut etre pas ca du tout mais bon, ca coute rien d'essayer
    Manip faite, mais pas de changement!
    voici le texte de l'erreur récupérée dans le log SchedLgU.Txt

    "BatchGuide.job" (Guide.exe) 07/06/2008 07:11:00 ** AVERTISSEMENT **
    Répertoire de travail non valide..
    L'erreur spécifique est*:
    0x00000003: Le chemin d'accès spécifié est introuvable.
    Vérifiez que le répertoire existe et réessayez.
    "BatchGuide.job" (Guide.exe) 07/06/2008 07:11:00 ** ERREUR **
    Impossible de commencer la tâche.
    L'erreur spécifique est*:
    0x80070005: Accès refusé.
    Essayez de localiser l'application avec le bouton Parcourir de la page des tâches.
    [ ***** Les opérations les plus récentes sont listées ci-dessus ***** ]

    Il me semble bien que le pb tourne autour de l'art et la maniére de définir le chemin de l'éxecutable et des droits pour y accéder.

    Concernant le chemin /TR je fourni le chemin complet C:\Program_Files\...\Guide.exe essayé avec et sans quote mais toujours sans résultat!

    Concernant les droits, mon nom d'utilisateur est administrateur, disposant des droits d'administrateur, et son mot de passe!

    bref le blues!


    mais qui donc a déja utilisé ce fichu API et posséde sa syntaxe?

    Merci de ton aide et à plus

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Par défaut Quelques précisions suppmémentaires
    Si l'executable à lancer est rangé dans "C:\DossierErnie\ProgrammeErnie\" la tâche planifiée est créée et exécutée! Bravo!!!

    Par contre si le chemin est "C:\Dossier Ernie\Programme Ernie\" les blancs mettent la pagaïlle, la tache planifiée est créée et à l'exécution plouf

    Pour éviter ce souci je pensai qu'il fallait remplacer les blancs dans la ligne de commande par _ soit: "C:\Dossier_Ernie\Programme_Ernie\" erreur, visiblement, ça ne marche pas


    Quel est donc ce fichu caractére de remplacement des blancs?

    Merci de vos contributions

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

Discussions similaires

  1. chemin d'accès avec des espaces ?
    Par black bulldog dans le forum Langage
    Réponses: 3
    Dernier message: 03/06/2014, 10h11
  2. Gérer un chemin avec des espaces
    Par helaaa dans le forum MATLAB
    Réponses: 2
    Dernier message: 25/03/2013, 19h15
  3. Problème de chemin de fichier avec des espaces
    Par Akronyme dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 11/12/2006, 17h12
  4. os.system et chemins avec des espaces
    Par frenchy404 dans le forum Général Python
    Réponses: 3
    Dernier message: 08/12/2006, 22h03
  5. Réponses: 18
    Dernier message: 28/08/2006, 23h07

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