Lancer xcopy apres un .exe dans un .bat
Résolu/Fermé
A voir également:
- Bat xcopy
- Fichier bat - Guide
- Bat to exe converter - Télécharger - Édition & Programmation
- .Bat linux ✓ - Forum Linux / Unix
- Pokemon qui bat qui ✓ - Forum Pokémon
- Exécuter un fichier bat automatiquement - Forum Autoit / batch
11 réponses
J'ai trouvé !
Pour en 1 (lancer un executable)
start C:\Program Files\Dossier\start.exe
Il faut effectivement rajouter les guillemets. MAIS cela ouvre une nouvelle session Cmd.exe avec la commande C:\Program Files\Dossier\start.exe comme titre de la fenêtre de console
Voici ce que j'ai trouvé comme info :
Il faut donc mettre :
start "" "C:\Program Files\Dossier\start.exe"
Maintenant pour lancer la commande xcopy après la fermeture de start.exe voici l'info que j'ai trouvé pour la command start :
/w [attendre] Ne retourne pas tant que l'ancien programme existe.
En résumé
Au lieu de :
start C:\Program Files\Dossier\start.exe
Xcopy C:\Dossiers D:\Dossiers\ /s/y
il faut
start /w "" "C:\Program Files\Dossier\start.exe"
xcopy C:\Dossiers D:\Dossiers\ /s/y
Merci pour votre participation
Pour en 1 (lancer un executable)
start C:\Program Files\Dossier\start.exe
Il faut effectivement rajouter les guillemets. MAIS cela ouvre une nouvelle session Cmd.exe avec la commande C:\Program Files\Dossier\start.exe comme titre de la fenêtre de console
Voici ce que j'ai trouvé comme info :
La commande Start démarre un programme ou une commande dans une nouvelle fenêtre de console. Mais si vous essayez de démarrer un programme à partir d’un répertoire qui contient des espaces (ou si le nom du programme contient lui-même des espaces), la commande Start ne se comportera pas comme prévu. Ainsi, la commande suivante Start "C:\Program Files\Microsoft Office\Office\Winword.exe" ne démarre pas Microsoft Word, comme vous pourriez le croire. Au lieu de cela, la commande Start ouvre une nouvelle session Cmd.exe avec la chaîne entre guillemets comme titre de la fenêtre de console. Explication : la commande Start utilise la première chaîne entre guillemets sur sa ligne de commande, comme un titre de fenêtre de console. Pour contourner cela, utilisez une paire de guillemets pour spécifier un titre vierge, puis faites suivre le titre par le programme que vous voulez exécuter. La commande Start corrigée se présentera ainsi : Start "" "C:\Program Files\Microsoft Office\Office\Winword.exe"
Il faut donc mettre :
start "" "C:\Program Files\Dossier\start.exe"
Maintenant pour lancer la commande xcopy après la fermeture de start.exe voici l'info que j'ai trouvé pour la command start :
/w [attendre] Ne retourne pas tant que l'ancien programme existe.
En résumé
Au lieu de :
start C:\Program Files\Dossier\start.exe
Xcopy C:\Dossiers D:\Dossiers\ /s/y
il faut
start /w "" "C:\Program Files\Dossier\start.exe"
xcopy C:\Dossiers D:\Dossiers\ /s/y
Merci pour votre participation
BlueMind
Messages postés
583
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
22 juillet 2008
159
11 juil. 2008 à 09:54
11 juil. 2008 à 09:54
Bonjour,
Pour le point 1, c'est simple suffit d'ajouter les guillemets
start "C:\Program Files\Dossier\start.exe"
Pour le point 2 je ne suis pas certain mais essaye de supprimer le start afin de ne pas ouvrir une deuxième session dos.
Pour le point 1, c'est simple suffit d'ajouter les guillemets
start "C:\Program Files\Dossier\start.exe"
Pour le point 2 je ne suis pas certain mais essaye de supprimer le start afin de ne pas ouvrir une deuxième session dos.
vViLLiaM
Messages postés
35
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
21 janvier 2009
5
11 juil. 2008 à 09:55
11 juil. 2008 à 09:55
Salut !
Tout d'abord ta 1ère erreur vient du fait qu'il y a des espaces dans ta ligne de commande, entre Programs et Files par exemple, il faut que tu mettes tout le chemin du fichier .exe entre guillemets.
Tout d'abord ta 1ère erreur vient du fait qu'il y a des espaces dans ta ligne de commande, entre Programs et Files par exemple, il faut que tu mettes tout le chemin du fichier .exe entre guillemets.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
11 juil. 2008 à 09:55
11 juil. 2008 à 09:55
--
au lieu de program files, il faut taper Progra~1
c est l espace qui pose probleme sous dos, il sait pas si c est un nouveau parametre ou la suite...
sinon, tu dois pour voir mettre entre guillements "c:\program files"
au lieu de program files, il faut taper Progra~1
c est l espace qui pose probleme sous dos, il sait pas si c est un nouveau parametre ou la suite...
sinon, tu dois pour voir mettre entre guillements "c:\program files"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
11 juil. 2008 à 11:46
11 juil. 2008 à 11:46
en faisant start /? je vois un parametre B qui devrai te convennir ... j ai pas testé
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
11 juil. 2008 à 12:24
11 juil. 2008 à 12:24
Bonjour et pourquoi pas simplement
"C:\Program Files\Dossier\start.exe"
xcopy C:\Dossiers D:\Dossiers\ /s/y
"C:\Program Files\Dossier\start.exe"
xcopy C:\Dossiers D:\Dossiers\ /s/y
car en faisant cela ca copie les fichier juste après l'ouverture de l'exe et non la fermeture
sinon j'ai encore trouvé cela pour cacher la fenêtre de commande
ou ceci
mais on lance comment leur truc ?, on crée un fichier comme un .bat et on mets une autre extension ?
sinon j'ai encore trouvé cela pour cacher la fenêtre de commande
function LanceBatchAttenteFin(NomFichier:string;visible:boolean):boolean; {permet de lancer un batch. NomFichier est le nom avec chemin } {de ce batch ou d'un raccourci qui pointe vers cet exécutable. } { notre programme est arrété tant que l'exécutable n'est pas fini } {tout est arrété on ne peut donc même plus déplacer sa fenêtre. } {mettre visible à false pour cacher la fenêtre du batch} { il est donc préférable de la rendre invisible avant le lancement } {de cette fonction. } { LanceAppliAttenteFin renvoie true si le lancement s'est bien passé } var StartInfo : TStartupInfo; ProcessInformation : TProcessInformation; i:integer; begin if visible then i:=0 else i:=CREATE_NO_WINDOW; result:=true; ZeroMemory(@StartInfo, sizeof(StartInfo)); // remplie de 0 StartInfo StartInfo.cb:=sizeof(StartInfo); if CreateProcess(nil,PChar(NomFichier),nil,nil,true,i,nil,nil, StartInfo,ProcessInformation) then WaitForSingleObject(ProcessInformation.hProcess, INFINITE)// attend que l'application désignée par le handle ProcessInformation.hProcess soit terminée else result:=false; end;
ou ceci
Avec Delphi, c'est encore plus simple, en utilisant des fonctions de haut niveau : PROGRAM gobat; USES Forms,ShellApi;{$R *.RES} BEGIN ShellExecute(Application.Handle,NIL,'go.bat','','',0); END.
mais on lance comment leur truc ?, on crée un fichier comme un .bat et on mets une autre extension ?
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
>
Abdias
11 juil. 2008 à 12:43
11 juil. 2008 à 12:43
donc
cmd /K "C:\Program Files\Dossier\start.exe"
xcopy C:\Dossiers D:\Dossiers\ /s/y
cmd /K "C:\Program Files\Dossier\start.exe"
xcopy C:\Dossiers D:\Dossiers\ /s/y
Abdias
>
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
11 juil. 2008 à 13:05
11 juil. 2008 à 13:05
Non ca fonctionne pas
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
161
>
Abdias
11 juil. 2008 à 13:11
11 juil. 2008 à 13:11
je n'ai plus d'idees dsl
Abdias
>
zavenger
Messages postés
811
Date d'inscription
vendredi 29 février 2008
Statut
Membre
Dernière intervention
20 avril 2012
11 juil. 2008 à 13:17
11 juil. 2008 à 13:17
Il n'y a pas de souci
vu que la commande suivant fonctionne
start /W "" "C:\Program Files\Dossier\start.exe"
par contre pour supprimé la fenêtre de commande j'ai trouvé ceci :
https://www.developpez.com/telechargements/auth/id/093babf0407c8f2437821cc486b11d93
on obtient deux fichiers dans ce gobat.zip
-gobat.dpr
-gobat.exe
il suffit d'y ajouter son fichier.bat en le nommant go.bat
et le fichier bat se lance sans l'apparition de la fenêtre de commande
vu que la commande suivant fonctionne
start /W "" "C:\Program Files\Dossier\start.exe"
par contre pour supprimé la fenêtre de commande j'ai trouvé ceci :
https://www.developpez.com/telechargements/auth/id/093babf0407c8f2437821cc486b11d93
on obtient deux fichiers dans ce gobat.zip
-gobat.dpr
-gobat.exe
il suffit d'y ajouter son fichier.bat en le nommant go.bat
et le fichier bat se lance sans l'apparition de la fenêtre de commande
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
11 juil. 2008 à 13:15
11 juil. 2008 à 13:15
un truc que je n ai pas saisi, pourquoi es ce que tu utilises la fonction starx pour demarer tes applications, si apres tu galère pour attendre qu elles finissent ?
start ouvre dans une nouvelle fenetre, ca rend les applications non bloquantes. mais toi tu veux attendre qu elles se finissent...
a ta place, j indiquerait simplement le nom du programme a executer, puis ensuite la copie ...
par contre pour cahcer la fenetre, je sais pas sous dos, par contre tu peux faire start /min
start ouvre dans une nouvelle fenetre, ca rend les applications non bloquantes. mais toi tu veux attendre qu elles se finissent...
a ta place, j indiquerait simplement le nom du programme a executer, puis ensuite la copie ...
par contre pour cahcer la fenetre, je sais pas sous dos, par contre tu peux faire start /min
Je ne galère pas du tout à attendre que cela finisse vu que start /W attends justement que la commande soit fini pour passer à la suivante donc en faisant
start /w "test.exe"
xcopy c: d:
une fois l'exécutable test fermé ca passe directement à la commande xcopy
ce qui me donne le résultat recherché : pourvoir lancer automatiquement la sauvegarde des données d'un programme une fois que celui ci sera fermé
le seul inconvenant c'est que cela m'ouvre une fenêtre de commande que j'ai réussi a supprimé en passant par une exécutable que j'ai trouvé ailleurs (voir post au dessus)
start /w "test.exe"
xcopy c: d:
une fois l'exécutable test fermé ca passe directement à la commande xcopy
ce qui me donne le résultat recherché : pourvoir lancer automatiquement la sauvegarde des données d'un programme une fois que celui ci sera fermé
le seul inconvenant c'est que cela m'ouvre une fenêtre de commande que j'ai réussi a supprimé en passant par une exécutable que j'ai trouvé ailleurs (voir post au dessus)
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
11 juil. 2008 à 13:31
11 juil. 2008 à 13:31
ok.
interessant le fichier.
par contre, le start /w "test.exe"
reviens a faire juste "test.exe"
evidement, le start (que tu m as fait decouvrir) permet de gerer la priorité du processus, ce qui peut etre interessant
interessant le fichier.
par contre, le start /w "test.exe"
reviens a faire juste "test.exe"
evidement, le start (que tu m as fait decouvrir) permet de gerer la priorité du processus, ce qui peut etre interessant
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
>
Abdias
11 juil. 2008 à 13:55
11 juil. 2008 à 13:55
oui, mais si tu fais test.exee tout simplement, le programme s execute dans la meme fenetre, est bloquant, c est a dire qu il faut que le programme soit fini pour passer a la fenetre suivante, et la fenetre se ferme aussi il me semble
J'ai lu rapide et je n'ai pas revu de référence à shellExecute, alors je précise : ceci est une fonction utilisée dans le langage de programmation C, et présente dans les librairies windows, qui permet d'exécuter un programme exécutable avec des paramètres. Ce n'est pas utilisable en batch
Bonjour
Dans le post au dessus Abdias propose d'utiliser "gobat.exe" sont source est
PROGRAM gobat;
USES Forms,ShellApi;
BEGIN
ShellExecute(Application.Handle,NIL,'go.bat','','',0);
END.
un programme Delphi ou Pascal qui utilise "ShelleExcecute"
Pour mon cas, j'ai pu lancer un exécutable avec un paramètres, ce que je recherchais depuis un certain temps
Dans le post au dessus Abdias propose d'utiliser "gobat.exe" sont source est
PROGRAM gobat;
USES Forms,ShellApi;
BEGIN
ShellExecute(Application.Handle,NIL,'go.bat','','',0);
END.
un programme Delphi ou Pascal qui utilise "ShelleExcecute"
Pour mon cas, j'ai pu lancer un exécutable avec un paramètres, ce que je recherchais depuis un certain temps