Question 1er script, 1ers problèmes

Plus d'informations
il y a 8 ans 2 mois #24802 par Gabriel
Bonjour à tous,
Je me suis décidé à faire des scripts Windows, donc Powershell.

Mon problème : lancer un programme exécutable qui se trouve dans le répertoire \"Program Files (x86)\". Je suis forcé de laisser cet exécutable à cet endroit là.
Ensuite je veux faire exécuter ce script à heure fixe par le planificateur de tâches.

Je me suis d'abord battu avec les chemins de fichier.
Un chemin complet d'exécutable entre guillemets, Powershell ne semble pas connaître. Si je rentre en console Powershell
[code:1]\"C:\Program Files (x86)\XXX\yyy.exe\"[/code:1]je reçois une bordée d'injures en rouge (en résumé fichier introuvable).

Après un grand nombre d'essais et erreurs, j'ai trouvé le moyen suivant.
[code:1]set-location -path \"C:\Program Files (x86)\XXX\"
.\yyy.exe[/code:1]Là ça marche. Y a-t-il une formulation plus élégante ?

Si maintenant j'enregistre le script ci-dessus comme fichier .ps1 il ne peut être exécuté que manuellement, en cliquant droit dessus, puis \"Exécuter avec Powershell.\"
J'avais lu que pour qu'il soit directement exécutable, il fallait le transformer en .bat.
Alors j'ai changé l'extension .ps1 en .bat mais manifestement ça ne suffit pas car au double-clic il ne se passe rien.
Je commence à fatiguer alors lâchement je demande l'avis des spécialistes.
:) gabier

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 2 mois #24804 par Laurent Dardenne
gabier écrit:

\"C:\Program Files (x86)\XXX\yyy.exe\"

Ceci est une chaine de caractère, pour que PS le reconnaisse comme du 'code', il faut le préfixer d'un opérateur & ou .:
[code:1]
&\"C:\Program Files (x86)\XXX\yyy.exe\"
[/code:1]
gabier écrit:

J'avais lu que pour qu'il soit directement exécutable, il fallait le transformer en .bat.

Changer l'extension ne fait pas d'un fichier texte un exécutable. Il faut un compilateur qui l’intègre dans un launcher.
MAIS ceci nécessite tout de même d'installer Powershell sur la machine ciblée ou du moins de reconstruire à l'identique.
Je ne suis pas sûr que ce soit une bonne idée...
Je te conseille de faire simple au début, quitte à reprendre cette idée plus tard.
gabier écrit:

Je commence à fatiguer alors lâchement je demande l'avis des spécialistes.

Et ce n'est que le début :P

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 2 mois #24805 par Gabriel
Réponse de Gabriel sur le sujet Re:1er script, 1ers problèmes
Bonjour Laurent,

Merci pour la réponse, très claire.

Pour mon exécutable, les machines qui vont exécuter le script sont sous Windows 10, donc elles ont powershell. Qui plus est elles sont sous mon contrôle donc je peux y autoriser l'exécution des scripts.
Je vais donc dans un premier temps utiliser la syntaxe ci-dessous, que j'ai trouvée sur Internet et qui semble marcher sur une machine qui a powershell en état de marche. On place ce code comme cible d'un raccourci.
[code:1]powershell.exe -file chemin du script ps[/code:1]

Sinon, que penser du script PS2EXE, qui semble être utilisé par beaucoup? Son avantage est de créer un exécutable portable ?

:) gabier

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 2 mois #24806 par Gabriel
Réponse de Gabriel sur le sujet Re:1er script, 1ers problèmes
J'ai fait le raccourci. Il marche très bien, mais je n'ai pas réussi à le faire exécuter par le planificateur de tâches de windows. Le raccourci est
[code:1]C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -file D:\gabriel\Mes_Documents\NAS\Start_CBS.ps1[/code:1]
Le planificateur refuse le texte complet du raccourci, il ne prend que l'exécutable soit[code:1]C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe[/code:1] il y a alors un champs \"arguments\", je présume que c'est [code:1]-file D:\gabriel\Mes_Documents\NAS\Start_CBS.ps1[/code:1]
Mais à l'heure planifiée, il ne se passe rien.

Ca commence à me lasser ... Dans le passé j'ai utilisé Cron, le planificateur de Linux, il me semble bien plus simple.

J'ai aussi essayé le script PS2EXE mais il refuse de marcher pour les versions de Powershell supérieure à 4. Il paraît qu'il suffit de le leurrer en changeant la variable d'environnement $PSVersion, mais je n'ai pas réussi. Bref, choux blanc sur ce coup là aussi.<br><br>Message édité par: gabier, à: 5/01/18 17:11

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 2 mois #24807 par Laurent Dardenne
Pour PS2EXE regarde cette version .

Pour la tâche vérifie si elle se déclenche mais ne fait rien ou si elle se déclenche mais génère une erreur.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 2 mois #24808 par Gabriel
Réponse de Gabriel sur le sujet Re:1er script, 1ers problèmes
merci Laurent,
Pour le ps2exe, c'est bon, je n'avais pas bien compris la parade pour ma version. L'autre que tu indiques est sûrement plus sûre.
Pour le planificateur, j'ai fini par y arriver, c'est plein d'options piégeuses ce truc. Et avec l'exécutable, sinon macache.

Merci pour l'aide. Je vais faire une pause maintenant dans l'écriture, ça me donne le temps d'apprendre un peu plus !!!
:) gabier

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.051 secondes
Propulsé par Kunena