為什么其他文件夾路徑也添加到使用SetX的系統PATH而不僅是指定的文件夾路徑?我有一個批處理文件,我從C ++調用system("name.bat")。在該批處理文件中,我試圖讀取注冊表項的值。從C ++調用批處理文件會導致set KEY_NAME=HKEY_LOCAL_MACHINE\stuff失敗。但是,當我直接運行批處理文件(雙擊它)時,它運行正常。不確定我做錯了什么。批處理文件: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:我發現密鑰實際上是在64位注冊表中,而我正在構建一個32位的C ++解決方案。一旦我修復了它,它發現注冊表鍵很好?,F在我在將該路徑添加到PATH變量時出現問題。它不是創建系統變量,而是創建用戶變量PATH并將其添加到那里。從命令行運行。碼: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的位置,現在它正在添加到正確的PATH變量。但是,當我這樣做時,它不止一次添加PATH(3次),然后它還添加了一個到visual studio amd64文件夾的路徑。我很確定為什么會這樣。
- 1 回答
- 0 關注
- 746 瀏覽
添加回答
舉報
0/150
提交
取消