2

Я думаю, что мой PATH в переменных среды не работает должным образом, и я хотел бы задать несколько вопросов о переменных среды в целом.

  1. В чем разница между пользовательскими и системными переменными? Когда следует использовать один? Что если у вас есть, т.е. одна и та же переменная как для пользователя, так и для системы? Не имеет значения, потому что системные переменные охватывают всех пользователей?

  2. Я пытаюсь использовать ярлыки, чтобы сделать мой путь более чистым. Например, я установил мой JAVA_HOME в C:\Program Files\Java\jdk1.6.0_25\bin а затем PATH в %JAVA_HOME%\bin . Однако, когда я набираю "echo %PATH%" в cmd, он все равно показывает %JAVA_HOME%\bin . Должен ли я волноваться, что это не "C:\Program Files\Java\jdk1.6.0_25\bin"?

  3. Если бы я хотел проверить, существует ли xml на моем пути, как бы я это проверил?

  4. Поскольку некоторые программы не любят пробелы в переменных среды, было предложено использовать C:\Progra ~ 1\ вместо C:\Program Files\, как показано здесь: http://ist.berkeley.edu/as-ag/technology/howto/install-java-sdk-win.html Как это сделать? Где начать перерыв и добавить ~ 1. Это всегда 1?

Спасибо!

2 ответа2

2
  1. Пути пользователя и системы объединяются, когда пользователи входят в систему. Если ни один пользователь не вошел в систему, переменная% PATH% будет отражать только системный путь.

    • Пользовательские переменные настраиваются для каждого пользователя и вступают в силу только в том случае, если этот конкретный пользователь вошел в систему.

    • Системная переменная применяется ко всем пользователям в системе. Различные каталоги Windows и подсистема Java, а также другие, которые должны применяться ко всем пользователям, задаются как часть системного пути.

  2. Вы не должны делать это, потому что это может поддерживаться не всеми программами. Просто укажите полные пути, как ожидает большинство программ, и все будет в порядке.

  3. В ваших переменных% PATH% не должно быть XML, поскольку символы < и > , которые широко используются в XML, являются недопустимыми переменными каталога.

  4. Некоторые старые программы DOS могут иметь проблемы с этим, но я не испытывал проблем с пробелами в элементах пути начиная с Windows XP. Просто убедитесь, что каждый указанный вами путь, включающий пробелы в именах каталогов, заключен в кавычки. Документ, на который вы ссылаетесь, который рекомендует эту практику, кажется, устарел, поскольку в нем обсуждается Java v1.5 (Java v1.6 доступна уже много лет, и многие ожидают, что Java v1.7 выйдет очень скоро).

    • Имена не всегда сокращаются до 8.3 с суффиксом ~ 1, заканчивающим часть имени файла. Например, в 64-битной Windows вы можете ввести «Dir C:\PRO *» в командной строке DOS, и вы увидите по крайней мере две записи (обычно «PROGRA ~ 1» для "Program Files" и «PROGRA ~ 2»). для "Программные файлы (x86)").
2
  1. Пользовательские переменные существуют только во время работы вашего пользователя и доступны только для процессов, которые выполняются в контексте вашего пользователя. Системные переменные, с другой стороны, доступны каждому пользователю.

  2. (Я не был уверен на 100%, когда впервые написал, но я только что проверил это для вас и переделал этот ответ!). Переменные доступны во время их вызова. Я сделал следующий тест:

    set testing=c:\test
    set path=%testing%
    path
    -----result-----
    > PATH=c:\test
    

Я также воссоздаю ваши шаги, создав переменную окружения под названием testing затем установлю для моего пути значение %testing% . Я снова пошел в командную строку, и когда я набрал путь, я получил то же самое

    PATH=c:\test

Итак, похоже, что это должно работать нормально. При дальнейшем рассмотрении, это то, что Microsoft и другие поставщики, по-видимому, делают - существует много случаев, когда %systemroot% определен в пути с этой переменной, определенной в другом месте.

3 Легкого пути не существует, Path - это старая команда DOS, которая существует для запуска исполняемых файлов и команд вне папки. Хотя это и не очень полезно, если вам нужен доступ из командной строки, попробуйте взглянуть на такой инструмент, как « Все» , с помощью которого очень легко получить доступ к файлам!

4. Все, что я действительно могу сделать, это повторить ответ @Randolf Richardson ... 6 символов + ~1 (увеличение на одну для каждой папки) и попытаться ввести имена с пробелами в кавычки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .