2013-03-31 2 views
4

Я знаю, что я могу начать ех, выполнив:Как выполнить любой .exe с помощью командного файла?

start "" /b filename.exe 

Но это требует от меня, чтобы знать имя filename.exe, как я мог бы сделать, что для любого обычного файла с расширением .exe? Я попробовал очевидное выполнение подстановочных:

start "" /b *.exe 

для Windows, однако, дает мне ошибку говоря, что не может найти «* .exe» файл.

+0

С какой целью это будет использоваться? –

+0

Выполнение одного exe в определенной папке после его извлечения предыдущей частью моего скрипта. (всегда будет только один exe в папке) – ShizukaSM

ответ

13

, если вы планируете работать в пакетном файле можно сделать таким образом:

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

, если вы хотите, чтобы пропустить определенный файл, который будет выполняться:

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

, если необходимо проверить также вложенную папку s добавить параметр/г:

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

На самом деле, ваш ответ был единственным, кто работал, поскольку другие получили ошибку в папке с пробелами (например, Doccuments и настройки), спасибо! Знаете ли вы, есть ли способ добавить «исключить»? (Что-то вроде 'for/r %% i in (* .exe) начинать« »/ b« %% i », кроме blabla.exe') – ShizukaSM

+1

попробуйте таким образом 'for/r %% i in (* .exe) do if not" %% ~ nxi "==" blabla.exe "start" "/ b" %% i "' –

+0

Работал безупречно снова, многие благодаря! – ShizukaSM

2

Hoep помогает

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

Вы должны сначала использовать реж команду, чтобы найти все исполняемые файлы, а затем выполнить его.

+0

+1 Это работает красиво, но не удается, если в папке есть пробелы. – ShizukaSM

4

С ЦМД запустить эту папку, которая имеет все exe вы хотите запустить:

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

+1 Это работает красиво, но не удается, если в папке есть пробелы. – ShizukaSM

+0

Я обновил его для работы с пробелами. –

0

В файле летучей мыши добавить эту строку

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

Это выполнить каждый EXE-файл в текущем каталоге. такие же как

*.exe 

было бы сделано, если * были поддержаны на партии.

Если вы хотите, чтобы выполнить его непосредственно из окна командной строки, просто сделать

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

Я получаю «Windows не может найти« 167936 », любые идеи почему? – ShizukaSM

+0

не удается 1) в некоторых форматах даты/времени 2) если имя файла имеет пробелы – Endoro

0

Не вините их коды для космического выпуска. Вы должны знать, как использовать двойные кавычки.

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

У меня нет.И я все еще давал +1, так как ** ** ** работал. Я только что дал лучший ответ избранному, я не знаю, почему ты так горько об этом. – ShizukaSM

Смежные вопросы