為什么其他文件夾路徑也添加到使用SetX的系統(tǒng)PATH而不僅是指定的文件夾路徑?我有一個(gè)批處理文件,我從C ++調(diào)用system("name.bat")。在該批處理文件中,我試圖讀取注冊(cè)表項(xiàng)的值。從C ++調(diào)用批處理文件會(huì)導(dǎo)致set KEY_NAME=HKEY_LOCAL_MACHINE\stuff失敗。但是,當(dāng)我直接運(yùn)行批處理文件(雙擊它)時(shí),它運(yùn)行正常。不確定我做錯(cuò)了什么。批處理文件:set KEY_NAME=HKEY_LOCAL_MACHINE\SOFTWARE\Ansoft\Designer\2014.0\Desktopset VALUE_NAME=InstallationDirectoryREG QUERY %KEY_NAME% /v %VALUE_NAME%C ++文件:int main(void){
system("CALL C:\\HFSS\\setup_vars.bat");
return 0;}更新1:我發(fā)現(xiàn)密鑰實(shí)際上是在64位注冊(cè)表中,而我正在構(gòu)建一個(gè)32位的C ++解決方案。一旦我修復(fù)了它,它發(fā)現(xiàn)注冊(cè)表鍵很好?,F(xiàn)在我在將該路徑添加到PATH變量時(shí)出現(xiàn)問題。它不是創(chuàng)建系統(tǒng)變量,而是創(chuàng)建用戶變量PATH并將其添加到那里。從命令行運(yùn)行。碼:set KEY_NAME=HKLM\SOFTWARE\Ansoft\Designer\2014.0\Desktop\set VALUE_NAME=InstallationDirectoryFOR /F "usebackq skip=1 tokens=1,2*" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME%`) DO (
set ValueName=%%A
set ValueType=%%B
set ValueValue=%%C)if defined ValueName (
@echo Value Value = %ValueValue%) else (
@echo %KEY_NAME%\%VALUE_NAME% not found.):: Set PATH Variableset path_str=%PATH%set addPath=%ValueValue%;echo %addPath%echo %ValueValue%echo %PATH%| find /i "%addPath%">NULif NOT ERRORLEVEL 1 (
SETX PATH "%PATH%) else (
SETX PATH "%PATH%;%addPath%;" /M)更新2:我移動(dòng)了選項(xiàng)/ M的位置,現(xiàn)在它正在添加到正確的PATH變量。但是,當(dāng)我這樣做時(shí),它不止一次添加PATH(3次),然后它還添加了一個(gè)到visual studio amd64文件夾的路徑。我很確定為什么會(huì)這樣。
為什么其他文件夾路徑也添加到使用SetX的系統(tǒng)PATH而不僅是指定的文件夾路徑?
精慕HU
2019-07-31 10:46:24