看板 Programming 關於我們 聯絡資訊
第一次來到貴板,拜個碼頭先~ <(_ _)> ※ 引述《bobhsiao (㊣小臃腫㊣)》之銘言: : 請問有這樣的api可以直接修改 WinXP 的環境變數 PATH 嗎? : 我想做到類似的功能: : PATH = %PATH%;C:\NEWPATH; : 除了手動去 "我的電腦=>內容=>進階=>環境變數" 內修改?? : 不論是用 win32sdk, perl, 批次檔 都可以,只要能達到目的。 : 先謝了。 炒一下冷飯,這問題最近我有需要,不只用在 path 有解了,繞一圈,不曉得有沒有更佳解? @version.exe > ver.txt @set /p ver= < ver.txt @del ver.txt 第一行,任何執行檔,想法子 text out 到一個檔案去 第二行 /p 就是輸入,但我用外部檔案取代鍵盤輸入 XD 第三行,刪除暫存檔 好辛苦喔~ 我有試過 @set /p ver < version.exe 但是失敗了... -- 活動/美食計劃 蘭嶼 魚白 勝興車站 星月天空 武陵 四湖焢窯 草嶺古道 嘉義阿里山小火車 保齡球  司馬庫斯 草屯焢窯 2011/10 手包水餃 日月潭纜車 合歡攻頂 馬祖 鹽山 南庄 澎湖 溪頭/松林町 南投天梯 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.197.63 ※ 編輯: HuangJC 來自: 60.251.197.63 (12/02 16:15)
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)