線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3177
推到 Plurk!
推到 Facebook!

cmd line下path路徑的問題

尚未結案
johnny_1121
一般會員


發表:12
回覆:58
積分:24
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-31 10:05:36 IP:192.72.xxx.xxx 未訂閱
舉例: C:\下有AP.exe及used.txt,另外C:\bin及C:\include有我需要的檔案 我要如何讓AP知道C:\bin及C:\include裡的檔案呢? 我使用了DOS時代的PATH方式… PATH C:\bin;C:\include%path 但無法讓AP知道C:\bin及C:\include裡的檔案,是否有其它方法可以… 不知這樣說明是否清楚…望前輩指引…
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-31 10:22:30 IP:203.73.xxx.xxx 未訂閱
引言: 舉例: C:\下有AP.exe及used.txt,另外C:\bin及C:\include有我需要的檔案 我要如何讓AP知道C:\bin及C:\include裡的檔案呢? 我使用了DOS時代的PATH方式… PATH C:\bin;C:\include%path 但無法讓AP知道C:\bin及C:\include裡的檔案,是否有其它方法可以… 不知這樣說明是否清楚…望前輩指引…
johnny_1121 你好: 請參考以下的做法 (
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
johnny_1121
一般會員


發表:12
回覆:58
積分:24
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-31 11:36:36 IP:192.72.xxx.xxx 未訂閱
引言:
引言: C:\下有AP.exe及used.txt,另外C:\bin及C:\include有我需要的檔案 我要如何讓AP知道C:\bin及C:\include裡的檔案呢? 我使用了DOS時代的PATH方式… PATH C:\bin;C:\include%path 但無法讓AP知道C:\bin及C:\include裡的檔案,是否有其它方法可以…
請參考以下的做法 (>< face="Verdana, Arial, Helvetica"> Mr.R 前輩你好 感謝你的回覆 (1) 我在CMD line下使用SET PATH=C:\bin;C:\include;%PATH%然而PATH無變化,而直接使用PATH=C:\bin;C:\include;%PATH%,why? 在PATH後,發現假如有一個檔案c:\include\bb.h在CMD打入c:\bb.h也可以順利開啟c:\include\bb.h… 然而執行C:\AP.exe, AP卻無法找到c:\include\bb.h這個檔案… (2) 前輩使用SetEnvironmentVariable目的也是去改變它的PATH嗎? AnsiString s; char *env; RichEdit->Clear(); env = GetEnvironmentStrings(); int iIndex = 0; do{ s = ""; //¬O«üpªº«ü¼Ð¤£µ¥©óªÅ¥Õ¶Ü¡H do{ s = env[iIndex]; env ; }while (env[iIndex] != 0); RichEdit->Lines->Add(s); env ; }while (env[iIndex] != 0) ; FreeEnvironmentStrings(env);
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-31 13:55:52 IP:203.73.xxx.xxx 未訂閱
引言: (1) 我在CMD line下使用SET PATH=C:\bin;C:\include;%PATH%然而PATH無變化,而直接使用PATH=C:\bin;C:\include;%PATH%,why? 在PATH後,發現假如有一個檔案c:\include\bb.h在CMD打入c:\bb.h也可以順利開啟c:\include\bb.h… 然而執行C:\AP.exe, AP卻無法找到c:\include\bb.h這個檔案… (2) 前輩使用SetEnvironmentVariable目的也是去改變它的PATH嗎? AnsiString s; char *env; RichEdit->Clear(); env = GetEnvironmentStrings(); int iIndex = 0; do{ s = ""; //¬O«üpªº«ü¼Ð¤£µ¥©óªÅ¥Õ¶Ü¡H do{ s = env[iIndex]; env ; }while (env[iIndex] != 0); RichEdit->Lines->Add(s); env ; }while (env[iIndex] != 0) ; FreeEnvironmentStrings(env);
johnny_1121 你好:
(1)你說你直接用 Command line 的方式卻無效,我實在不明白為什麼?? 因為我
   有試過,確實是可以的(Windows 2000, SP3)
(2)不過,有一點要特別注意,那就是在 Windows 9X/ME 是有長度限制的,如果
   儲存的路徑字串太長的話,後面會被截掉的
(3)你要先用 GetEnvironmentVariable 取得原來的字串,再把你要加入的字串
   加在前面,最後再用 SetEnvironmentVariable 設定回去
(4)能不能說明一下你的目的是什麼呢?? 也許,不一定要用這種方式才可以解決
   的
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
johnny_1121
一般會員


發表:12
回覆:58
積分:24
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-31 14:52:46 IP:192.72.xxx.xxx 未訂閱
引言: (1)你說你直接用 Command line 的方式卻無效,我實在不明白為什麼?? 因為我有試過,確實是可以的(Windows 2000, SP3) (2)不過,有一點要特別注意,那就是在 Windows 9X/ME 是有長度限制的,如果儲存的路徑字串太長的話,後面會被截掉的 (3)你要先用 GetEnvironmentVariable 取得原來的字串,再把你要加入的字串 加在前面,最後再用 SetEnvironmentVariable 設定回去 (4)能不能說明一下你的目的是什麼呢?? 也許,不一定要用這種方式才可以解決的
Mr.R前輩,thanks! (1) 我在command line下用SET PATH沒有變更到PATH,而是使用PATH才有變更 (winXP sp1) SET PATH c:\temp%PATH% (變更PATH無效) PATH c:\temp%PATH% (變更PATH成功) (2)從來不曉得…感謝教導! (3) 已能順利取得PATH, source code如下~
    AnsiString s;
    char *lpName;
    char *lpBuffer = new char[512];
    lpName = "PATH";
    DWORD nSize;
    nSize = GetEnvironmentVariable(lpName,lpBuffer,512);
    s = "";
    for(int i=0;iLines->Add(s);
            s = "";
        }
    }
    delete lpBuffer;
(4) 問題已用另外一種方式解決了,在AP下參數時加入include path即可 ("\/") ∩~∩ ( '.')(~'.'~) o~(__)_)(__(__)~o
系統時間:2024-05-03 2:18:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!