2011-06-10 126 views
1

來自ss64.com: /I:忽略對當前環境的任何更改。Windows命令行:START命令開關/我的意思?

這是什麼意思?如果你可以給出使用的例子,它的影響或沒有影響,那將是很好的(沒有提供在網站上,並沒有運氣谷歌搜索)。

+0

謝謝大家的回答!他們都是對的,但我必須選擇一個堅實而重要的(最少閱讀= P)。然而,我給了每個人UPs。 – Mechaflash 2011-06-10 18:03:55

回答

3

如果您通過定義變量來修改當前環境,

set foo=bar 
start app.exe 

APP.EXE會看到%foo%"bar"

set foo=bar 
start /i app.exe 

APP.EXE會看到%foo%爲未定義。

+0

那麼你實際上是在創建一個新的環境,完全忽略了在START命令之前放置的任何規則? – Mechaflash 2011-06-10 18:02:11

+0

是的...要添加到它,你會改變默認環境。通過這個,我的意思是你會創建系統變量。 – 2011-06-10 18:04:22

+0

setx會是一個例子嗎? – Mechaflash 2011-06-10 19:19:08

3

/I表示新環境將傳遞給cmd.exe的原始環境而不是當前環境。對環境變量,路徑所做的任何更改都不會反映在當前的START實例中。

它將Cmd.exe啓動環境傳遞到新的命令提示符窗口,而沒有其他。

this

+0

默認情況下爲cmd窗口設置的所有內容都被設置...暫時不由用戶設置的內容。 – 2011-06-10 18:02:53

1

從我的W7箱運行start /?

新的環境將成爲傳遞給 CMD.EXE的 原始環境,而不是當前的 環境。

所以給出的環境變量是給予該start從調用,而不是存儲在系統上當前環境的cmd實例的人。

例子:

> set lol=1 
> echo %lol% 
1 
> cmd 
> echo %lol% 
1 

現在,如果我要調用跑echo %lol%一個批處理文件,但使用/I開關啓動 - %lol不會被定義,因爲我已經改變了傳遞到原來的環境設置我的原始cmd.exe

你爲什麼要用它?那麼說你需要暫時改變%PATH%,然後調用一個可能依賴原始版本的腳本。 start /I在這裏是理想的,因爲無論你設置了什麼,傳遞給cmd的環境將由start開始,無論它是在開始第一個cmd的實例之前。