2013-03-31 7 views
4

Je sais que je peux commencer un exe en faisant:Comment exécuter un fichier .exe en utilisant un fichier batch?

start "" /b filename.exe 

Mais qui me demande de connaître le nom de filename.exe, comment pourrais-je faire pour tout fichier général avec l'extension .exe? J'ai essayé la mise en œuvre générique évidente:

start "" /b *.exe 

de Windows, cependant, me donne une erreur en disant qu'il ne peut pas trouver « * .exe » fichier.

+0

À quoi sert ce produit? –

+0

Exécution d'un exe dans un certain dossier après qu'il ait été extrait par une partie précédente de mon script. (Il n'y aura qu'un seul exe dans le dossier, toujours) – ShizukaSM

Répondre

13

si vous envisagez d'exécuter dans un fichier batch que vous pouvez faire de cette façon:

for %%i in (*.exe) do start "" /b "%%i" 

si vous voulez sauter un fichier particulier à exécuter:

for %%i in (*.exe) do if not "%%~nxi" == "blabla.exe" start "" /b "%%i" 

si est nécessaire de vérifier également le sous-dossier s ajouter le paramètre/r:

for /r %%i in (*.exe) do start "" /b "%%i" 
+0

En fait, votre réponse a été la seule qui a fonctionné, puisque les autres ont reçu une erreur dans un dossier avec des espaces (par exemple Doccuments et paramètres), merci! Savez-vous s'il y a un moyen d'ajouter un "except"? (Quelque chose comme 'for/r %% i in (* .exe) commence par" "/ b" %% i "sauf blabla.exe') – ShizukaSM

+1

try in de cette façon 'pour/r %% i dans (* .exe) faire sinon" %% ~ nxi "==" blabla.exe "démarrer" "/ b" %% i "' –

+0

A travaillé de nouveau sans faille, beaucoup Merci! – ShizukaSM

2

Hoep il aide

for /f "delims=" %%a in ('dir /b /s "*.exe"') do (
    start %%a 
) 

Vous devez d'abord utiliser la commande dir pour trouver tous les fichiers exe, puis l'exécuter.

+0

+1 Cela fonctionne bien, mais échoue si le dossier a des espaces. – ShizukaSM

4

De cmd lancer pour le dossier qui a toutes les exe que vous souhaitez exécuter:

for %x in (*.exe) do (start "" /b "%x") 
+0

+1 Cela fonctionne bien, mais échoue si le dossier a des espaces. – ShizukaSM

+0

Je l'ai mis à jour pour travailler avec des espaces aussi. –

0

Dans un fichier de chauve-souris ajouter cette ligne

FOR /F "tokens=4" %%G IN ('dir /A-D /-C ^| find ".exe"') DO start "" /b %%G 

Cette exécuter tous les fichiers .exe dans le répertoire courant. même que

*.exe 

aurait fait si * étaient pris en charge par lot.

Si vous voulez l'exécuter directement à partir d'une fenêtre de ligne de commande, il suffit de faire

FOR /F "tokens=4" %G IN ('dir /A-D /-C ^| find ".exe"') DO start "" /b %G 
+0

Je reçois un "Windows ne peut pas trouver '167936', des idées pourquoi? – ShizukaSM

+0

il échoue 1) dans certains formats de date/heure 2) si le nom de fichier a des espaces – Endoro

0

Ne pas blâmer leurs codes pour la délivrance de l'espace. Vous devez savoir comment utiliser des guillemets doubles.

for /f "delims=" %%a in ('dir /b /s *.exe') do (
    start "" "%%a" 
) 
+0

Je ne le fais pas.Et j'ai quand même donné un +1 depuis que ** la moitié ** a fonctionné. Je viens de donner la meilleure réponse à celle que j'ai choisie, je ne sais pas pourquoi vous êtes si amer à ce sujet. – ShizukaSM

Questions connexes