為什么其他文件夾路徑也添加到使用SetX的系統(tǒng)PATH而不僅是指定的文件夾路徑?我有一個批處理文件,我從C ++調(diào)用system("name.bat")。在該批處理文件中,我試圖讀取注冊表項的值。從C ++調(diào)用批處理文件會導(dǎo)致set KEY_NAME=HKEY_LOCAL_MACHINE\stuff失敗。但是,當(dāng)我直接運(yùn)行批處理文件(雙擊它)時,它運(yùn)行正常。不確定我做錯了什么。批處理文件: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)密鑰實際上是在64位注冊表中,而我正在構(gòu)建一個32位的C ++解決方案。一旦我修復(fù)了它,它發(fā)現(xiàn)注冊表鍵很好?,F(xiàn)在我在將該路徑添加到PATH變量時出現(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:我移動了選項/ M的位置,現(xiàn)在它正在添加到正確的PATH變量。但是,當(dāng)我這樣做時,它不止一次添加PATH(3次),然后它還添加了一個到visual studio amd64文件夾的路徑。我很確定為什么會這樣。
為什么其他文件夾路徑也添加到使用SetX的系統(tǒng)PATH而不僅是指定的文件夾路徑?
精慕HU
2019-07-31 10:46:24