2013-03-31 163 views
4

我知道我可以做啓動一個EXE:如何使用批處理文件執行任何.exe文件?

start "" /b filename.exe 

但是,這需要我知道文件名.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" 

如果有必要還要檢查子文件夾■添加的參數/ r:

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

實際上,您的答案是唯一有效的工作,因爲其他人在包含空格的文件夾中收到錯誤(例如文檔和設置),謝謝!你知道是否有任何方法可以添加一個「except」嗎?(類似於(* .exe)中的for/r %% i開始「」/ b「%% i」,除了blabla.exe') – ShizukaSM

+1

試試這樣 'for/r %% i in(* .exe)如果不是「%%〜nxi」==「blabla.exe」start「」/ b「%% i」' –

+0

完美無瑕地工作了很多謝謝! – ShizukaSM

2

Hoep它有助於

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

你應該先使用dir命令查找所有的exe文件,然後執行它。

+0

+1它很好地工作,但如果文件夾有空格,則會失敗。 – ShizukaSM

4

從CMD運行這個到具有文件夾中所有exe你想運行:

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

+1它很好地工作,但如果文件夾有空格會失敗。 – ShizukaSM

+0

我已將它更新爲與空間一起工作。 –

0

在一個bat文件中加入這一行

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