Script en .bat
dudu
-
dudu -
dudu -
Bonjour,
j'ai créé un script en batch seulement j'ai l'impression qu'il ya a pas mal d'erreur ! Sa fonction est de lancer explorer.exe lorsqu'il ne se lance pas automatiquement a l'ouverture d'une session windows sur certains poste du reseau informatique. Etant stagiaire mon maitre de stage m'a demander de voir si il etait possible de le faire. Voici mon script
set var=$(qprocess | find "explorer.exe" /C)
set var
if %var% == "0" goto test
else if goto fin
:test start explorer.exe
:fin taskkill /F /im explorer.exe
Voila si vous pourriez m'aider ! parce que la je suis perdu ...
j'ai créé un script en batch seulement j'ai l'impression qu'il ya a pas mal d'erreur ! Sa fonction est de lancer explorer.exe lorsqu'il ne se lance pas automatiquement a l'ouverture d'une session windows sur certains poste du reseau informatique. Etant stagiaire mon maitre de stage m'a demander de voir si il etait possible de le faire. Voici mon script
set var=$(qprocess | find "explorer.exe" /C)
set var
if %var% == "0" goto test
else if goto fin
:test start explorer.exe
:fin taskkill /F /im explorer.exe
Voila si vous pourriez m'aider ! parce que la je suis perdu ...
A voir également:
- Script en .bat
- Creer un fichier .bat - Guide
- Bat to exe - Télécharger - Édition & Programmation
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
3 réponses
je viens de modifier la ligne en question par if %var% =="1" goto fin
mais cela ne marche toujours pas :s
merci de la rapidité de la reponse tout de meme
mais cela ne marche toujours pas :s
merci de la rapidité de la reponse tout de meme
Ce qu'il faut que tu saches c'est que dans un script batch sous windows pas de fonction ou de contrôle du flux comme dans bash ou autre langage évolué. A ce titre tu pourrait éventuellement essayer de te pencher vers le vbscript. Donc en gros en batch pas de fonction pas de if(...then), else, else if (elif), for, while, do...while, until, j'en passe et des meilleures...
Dans un fichier batch toutes les insctructions sont exécutées ligne par ligne et la seule possibilité de saut c'est l'utilisation de goto (méthode critiquée par de nombreux développeurs moi y compris... m'enfin on va pas réinventer les fichiers de commande windows)
Au vu de ce qui vient d'être dit je ne comprend pas trop l'utilité du deuxième set var ? Et pour couronner le tout je ne suis pas forcément plus à l'aise en batch windows donc la syntaxe après le = du premier var ne me dis rien sous Windows donc à par le fait que tu utilises une commande externe pour savoir si le processus explorer.exe est présent ou pas je ne le comprend pas trop En fait c'est jute le $(...) que je ne comprend pas...
Je vois plus ça comme ça mais ça reste à tester.
Dans un fichier batch toutes les insctructions sont exécutées ligne par ligne et la seule possibilité de saut c'est l'utilisation de goto (méthode critiquée par de nombreux développeurs moi y compris... m'enfin on va pas réinventer les fichiers de commande windows)
Au vu de ce qui vient d'être dit je ne comprend pas trop l'utilité du deuxième set var ? Et pour couronner le tout je ne suis pas forcément plus à l'aise en batch windows donc la syntaxe après le = du premier var ne me dis rien sous Windows donc à par le fait que tu utilises une commande externe pour savoir si le processus explorer.exe est présent ou pas je ne le comprend pas trop En fait c'est jute le $(...) que je ne comprend pas...
Je vois plus ça comme ça mais ça reste à tester.
set var=$(qprocess | find "explorer.exe" /C) if %var% == "0" goto test if %var% == "1" goto fin :test start explorer.exe :fin taskkill /F /im explorer.exe
Ben disons qu'en se débrouillant un peu le batch peut être suffisamment puissant pour pas mal de choses mais le VBScript (je désigne indirectement par là Windows Script Host et cie) a été introduit dans Windows pour rattraper le retard qu'avait Windows par rapport à Linux en terme de scripting très utile aux administrateurs.
J'aurais plutôt utilisé echo %var% pour visualiser la valeur personnellement.
J'aurais plutôt utilisé echo %var% pour visualiser la valeur personnellement.
Pour ceux que ca interesse j'ai tout de meme persisté en Batch et j'ai enfin réussi à résoudre mon problème donc je vous laisse mon script pour ceux qui rencontre le meme problème que moi :)
@echo off
qprocess | find /C "explorer.exe" > variable.txt
set /P var= < variable.txt
if %var%== 0 start explorer.exe
del variable.txt
@echo off
qprocess | find /C "explorer.exe" > variable.txt
set /P var= < variable.txt
if %var%== 0 start explorer.exe
del variable.txt