GetEnvironmentVariable () и SetEnvironmentVariable () для переменной PATH

Я хочу расширить текущую переменную PATH с помощью программы на C #. Здесь у меня несколько проблем:

  1. Использование GetEnvironmentVariable ("PATH", EnvironmentVariableTarget.Machine) заменяет заполнители (то есть '% SystemRoot% \ system32' заменяется текущим путем 'C: \ Windows \ system32 '). Обновляя переменную PATH, я не хочу заменять заполнитель на путь.

  2. После SetEnvironmentVariable никакая программа больше не может быть открыта из окна команд (т.е. calc.exe в командной строке не работает.) Я использую следующий код:

String oldPath = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable("PATH", oldPath + ";%MYDIR%", EnvironmentVariableTarget.Machine);

После редактирования и изменения переменной PATH в Windows все снова работает. (Я требую изменений, иначе это не так. не перезаписывается)

13
задан abatishchev 6 November 2011 в 19:58
поделиться