Rechercher : dans
Par :

Script en .bat

Dernière réponse le 12 fév 2009 à 10:39:27 dudu, le 3 fév 2009 à 14:58:43 
 Signaler ce message aux modérateurs

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 ...

Configuration: Windows XP professionnel

Meilleures réponses pour « script en .bat » dans :
[IE] Erreur de script / Effectuer un débogage VoirDe temps en temps, lorsque vous naviguez sur le Net et que vous chargez une page Web, un message d'erreur de script survient : Une erreur est survenue. Une erreur est survenue sur le script de cette page. Souhaitez-vous effectuer un...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha-Bang Premièrement,...
Script au démarrage et à l'arrêt de Windows VoirL'astuce est valable pour Windows XP, Vista et 7 ; mais la méthode varie suivant l'édition de votre Windows (professionnelle ou familiale). Pour les éditions professionnelles ou intégrales Lancer l'éditeur de stratégie du groupe local : Menu...

1

EminoMeneko, le 3 fév 2009 à 15:02:00

Else if ça n'existe pas en fichiers de commande sous windows à ma connaissance.

Répondre à EminoMeneko

2

dudu, le 3 fév 2009 à 15:08:24

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

Répondre à dudu

3

EminoMeneko, le 3 fév 2009 à 15:18:29

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.

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

Répondre à EminoMeneko

4

dudu, le 3 fév 2009 à 15:28:45

Le deuxieme set var est créé pour tester juste si cela fonctionne que ce soit visible en fait. Donc je pense en effet me pencher sur du VBScript pour la suite puisque le .bat me parait tres restreint ! Merci a vous pour votre aide et votre temps.

Répondre à dudu

5

EminoMeneko, le 3 fév 2009 à 15:33:18

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.

Répondre à EminoMeneko

6

 dudu, le 12 fév 2009 à 10:39:27
  • +1

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

Répondre à dudu