→ HuangJC:啊..那是導入 version.exe 的檔案內容.. 60.251.197.63 12/02 16:17
→ HuangJC:而不是導入執行結果,難怪 60.251.197.63 12/02 16:17
推 DeathBook:環境變數是一種遺傳的樹狀結構,每個程式 112.104.47.132 12/02 22:43
→ DeathBook:執行時會從上一代的process copy一份下 112.104.47.132 12/02 22:43
→ DeathBook:來,系統不允許改變上一代的環境變數,實 112.104.47.132 12/02 22:44
→ DeathBook:務作法是在程式中修改或用自已的取代上 112.104.47.132 12/02 22:45
→ DeathBook:一代傳下來的那一份環境變數 112.104.47.132 12/02 22:46
這就是主要困擾
→ DeathBook:以前在dos可以設法取得系統的第一代環境 112.104.47.132 12/02 22:47
→ DeathBook:變數的實體位址,再偷偷塞進去,windows就 112.104.47.132 12/02 22:47
→ DeathBook:不能這樣子作了 112.104.47.132 12/02 22:48
我猜是保護模式,保護了不能侵犯別的行程空間
→ DeathBook:你可以用exec的方式call version.exe 112.104.47.132 12/02 22:48
→ DeathBook:然後可以指定argc,argv和envp 112.104.47.132 12/02 22:49
這裏就看不懂了
exec 是 dos 指令?
※ 編輯: HuangJC 來自: 223.140.249.181 (12/02 23:26)
推 DeathBook:exec泛指一群可用來把程式載入的fuction 112.104.47.132 12/03 00:24
→ DeathBook:call ,詳細去查書 112.104.47.132 12/03 00:25
那不夠啊,因為我已經用了不少,不過是 c call
今天問題是發生在想把環境變數傳回 dos 下
argc,argv 我會用
我還以為是我會用的部份不夠多
如果是 from c read dos env (類似 getenv) , 那並沒解決問題
目前就是 setenv 辦不到傳回母程序
read 和 write 方向並不一樣,我要解的問題是寫回 dos 那個方向
※ 編輯: HuangJC 來自: 223.140.249.181 (12/03 01:23)
推 LPH66:話說既然試過 < 不行何不試試 | 140.112.28.91 12/03 22:12
→ LPH66: @version.exe | set /p ver (沒試過就是了 140.112.28.91 12/03 22:13
→ HuangJC:不行;把 version.exe 換成 echo ttt 好了 114.26.153.133 12/03 22:14
→ HuangJC:反正就輸出 ttt ; 可以馬上試一下 114.26.153.133 12/03 22:14
推 LPH66:嗯 隨手測了一下果然不行... 140.112.28.91 12/03 22:15
我這招雖然繞了一圈,倒是有解掉問題 XD
如果要很複雜的批次檔,是會引入其他語言?
因為我看同事導入的系統,要先安裝 perl
我現在凡做不到的事,都要先寫個執行檔,累
當然也想過,全用執行檔,別弄批次檔架構了
執行檔的好處是我可以步進執行,又好看變數
批次檔的好處是不用 build,一下就改一點點東西
兩邊一直拉距
說真的,只想拷個小檔案,只想執行另一個程式
叫我寫 c code,很懶耶
※ 編輯: HuangJC 來自: 114.26.153.133 (12/03 22:21)