2014-04-23 83 views
5

Windows 7上,我有一個可執行文件,比如immutableProg.exe,我想用某些參數調用3次。這由批處理文件myBatch.bat完成。的myBatch.bat如何找出批處理文件是通過雙擊打開還是通過命令行打開

內容:

immutableProg.exe -a 
immutableProg.exe -b 
immutableProg.exe -c 

可執行immutableProg.exe確實有一個特殊的--keep開關,無法返回,直到用戶點擊任意鍵停止執行。現在我想添加--keep開關,當且僅當我的批處理myBatch.bat得到了雙點擊,如:

immutableProg.exe -a 
immutableProg.exe -b 
immutableProg.exe -c --keep 

如果用戶調用命令行從該批次不得添加。

問題:我怎樣才能找到(從我的批處理視圖)如果它是由雙擊或從命令行打開?

更改immutableProg.exe的默認行爲是不幸的,不是一個選項,也不是從命令行給這個批處理文件一個額外的參數。

+1

http://stackoverflow.com/questions/5859854/detect-if-bat-file-is-running-via-double-click-or-from-cmd-window – SachaDee

回答

7

%cmdcmdline%給出用於啓動當前Cmd.exe的確切命令行。

從命令控制檯啓動時,此變量爲"%SystemRoot%\system32\cmd.exe"

當從資源管理器啓動(雙次點擊)這個變種是cmd /c ""{full_path_to_the_bat_file}"

2

實際使用中haxtbh的答案的信息,你可以做到以下幾點。這不是傻瓜證明,但它通常工作正常。它會需要一個不尋常的情況來給出錯誤的閱讀。

echo %cmdcmdline%|find /i """%~f0""">nul && echo doubleClick || echo console launch 
相關問題