題 如何使用CMD腳本運行沒有EXE擴展的可執行文件?


情況是我有一個需要設置環境變量的可移植應用程序。其他方式它嘗試在用戶程序數據目錄中設置它的設置。

為了避免在非便攜模式下運行可執行文件(以避免允許它在沒有任何參數的情況下運行)我刪除了文件的“.exe”擴展名,但是我不僅不能通過鼠標(我想要的)運行它,而且還通過 start 命令。

有沒有辦法運行沒有exe擴展名的可執行文件?


18
2017-07-15 10:26


起源


你的問題不是很清楚。如果您不小心刪除了.EXE擴展名,為什麼不能將其添加回去?什麼阻止你這樣做? - Karan
我故意刪除它不小心點擊它所以程序將運行沒有任何參數。我希望在開始時只使用選項運行程序是安全的。 - rsk82


答案:


是的 - 只需輸入程序的完整文件名通常有效。 (該 .exe 要求僅存在於GUI shell中。)

(它 威力 是文件需要的 一個 雖然擴展 - 所以如果你不能得到 MyProgram 運行,重命名為 MyProgram.notexe 要么 MyProgram.lol 然後再試一次。)


12
2017-07-15 10:34



當我重命名一個自解壓Zip文件時,這讓我感到驚訝 .exe 至 .zip,試圖通過cmd.exe打開它,它 仍然 運行自提取器而不是打開WinZip。 - grawity
我不知道改變擴展的技巧,該程序可能需要一些虛擬的,這不是那麼直觀。但無論如何我遇到了另一個無賴,即應用程序本身需要其主要可執行文件才能擁有嚴格的名稱。 - rsk82
任何開始的東西 MZ 將由cmd執行,請在下方查看 - Петър Петров


任何擴展名和前兩個字節的文件 MZ 將被視為一個EXE。

試試以下:

  1. 創建一個新的 a.txt 文件,
  2. 輸入它 MZ, 保存。
  3. 打開 cmd,轉到它的文件夾,
  4. 類型 a.txt 並看到錯誤消息。

更換 MZ 同 MS 然後再試一次 - 這次記事本將在打開文件的情況下運行。


16
2017-12-19 12:44



在Windows 10中不起作用。它始終顯示 '' is not recognized as an internal or external command, operable program or batch file. 錯誤 - phuclv
我剛剛在家中嘗試使用Windows 10 Pro,它確實顯示錯誤 This version of D:\test.txt is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher. 以前我在工作中使用Windows 10 LTSB而且它不起作用 - phuclv
它仍適用於我的Windows 10 X64,與上面的示例相同。 - Петър Петров


我嘗試從沒有.exe擴展名的文件運行進程。當我沒有從cmd.exe這樣做時,我嘗試了一些powershell命令。這是一個:

開始處理

文檔說明了Default語法和UseShellExecute。只需:

Start-Process -FilePath .\my-program -Wait -NoNewWindow

該命令使用UseShellExecute語法,並將有關未關聯的應用程序的錯誤返回到該文件類型。要強制使用Default語法,我添加了UseShellExecute沒有的參數:

Start-Process -FilePath .\my-program -Wait -RedirectStandardError ./error.txt -NoNewWindow

我的程序啟動並將輸出寫入控制台。這對我來說已經足夠了,因為我只是出於測試目的而需要它。


2
2018-06-01 12:28