j’ai trois questions très bêtes sur les batchs et commandes msdos sous xp…
quand on fait un fichier batch, par défaut il attend la conclusion de chaque opération pour passer à la suivante. Par exemple si le batch est
machin.exe
bidule.exe
bidule.exe ne sera lancé qu’à la fermeture de machin.exe… (pour être plus précis j’imagine que c’est seulement quand machin.exe a renvoyé quelque chose, ici qu’il se ferme en l’occurence).
Je voudrais pouvoir exécuter la deuxième ligne sans attendre le résultat de la seconde, est-ce possible ? comment ?
Un problème concret : ntfsinfo est un petit utilitaire sympa de sysinterals. il n’a pas de gui. Je voudrais faire un raccourci dans le menu démarrer qui me permette de créer un fenetre ms-dos (en lancant cmd.exe par exemple), et qui dans cette fenêtre ms-dos exécuterait ntfsinfo (le but étant cette fois de conserver la fenêtre affichée pour pouvoir se servir plusieurs fois de l’utilitaire).
Je pense donc faire un raccourci vers .bat que je placerais dans le repertoire de ntfsinfo (par exemple), mais je ne sais pas quoi mettre dans le batch pour faire ça…
y a-t-il possibilité de contrôler le lancement et/ou l’arrêt de services windows via la la ligne de commande ? (pour pareil, pouvoir l’utiliser dans un .bat )
“FileZilla server.exe” /start
(lancement du service filezilla server)
puis
“FileZilla Server Interface.exe”
(lancement de l’interface)
puis
exit
(fermer la fenetre de commandes sans attendre la fermeture de l’interface).
Mon bat est donc jusqu’ici :
"FileZilla server.exe" /start
"FileZilla Server Interface.exe"|exit
malheureusement, ca ne marche pas : la fenêtre dos reste ouverte après l’ouverture de l’interface de FileZilla server.
Qu’est-ce que j’ai loupé ??
Zarathoustra : merci
deltree : ca n’allait pas, puisque la fenetre se fermait dès que j’entrais quelque chose pour répondre à pause Raynor : merci, c’est exactement ce qu’il me fallait, parfait !
Parfait, ça m’est bien utile aussi, merci beaucoup :jap:
Edité le 06/09/2007 à 12:44
en supposant que ton batch se trouve dans le repertoire d’install de fillezilla
@echo off
"filezilla server.exe"
start Filezillaserverinterface.exe
exit
quand tu lances filezilla server il te pose une question: voulez vous demarrer le serveur! quand tu cliques oui il continue alors le script en lançant l’interface
grâce à la commande start il passe directement apres avoir lancé l’interface à Exit et ferme donc la fenetre de commande!
J’ai enlevé les espace du fichier “Filezillaserverinterface.exe” parce que les espaces dans les batch ça fiche le souk
tu peux faire la même chose avec fiezillaserver.exe
Le | c’est le “pipe” de redirection de flux. notepad.exe et calc.exe ne sont des programmes console (leur lancement par la console n’est pas bloquant : console utilisable même si ils sont encore en cours d’exécution).
Le notepad et calc c’était juste pour un exemple simple, ça ne se passe pas pareil en batch, notepad et clac sont bien bloquant en batch. pour le pipe, j’ai plus l’habitude du “| more” j’étais perdu.
ce n’est ni plus ni moins qu’une commande permettant de lancer le service du serveur (c’est celle qu’exécute le raccourci “start filezilla server” créé par filezilla lors de l’install). remarque : j’aurais pu aussi faire net start nom_du_service_filezilla comme vu dans ce thread.
(ce n’est donc pas une tentative d’utilisation de start)
Et le problème, c’est que visiblement
machin.exe|exit
ca se comporte comme si j’avais simplement écrit
machin.exe
(et pourtant j’ai testé machin.exe|machin.exe, ca lance bien deux fois machin.exe)
Zara : merci beaucoup. n’y a-t-il pas moyen de faire ça en conservant le nom actuel de l’exécutable ? je demande ça par souci de propreté… j’ai essayé
start “FileZilla Server Interface.exe”
mais ca n’a pas marché.
Edité le 06/09/2007 à 21:04
microsoft aime bien mettre des espaces partout dans les noms de fichiers de son OS mais même ce dernier les gère très mal. C’est pas pour rien que sous linux on en met pas!
tu peux toujours remplacer les espaces par des _ ça sera toujours mieux que pas d’espace du tout