, которую я знаю о системной переменной среды % USERPROFILE%
в Windows XP (и Vista, и Windows 7). существует системная переменная среды, указывающая на местоположение Я просто хотел избежать тестирования версии ОС в скрипте Powershell, если смогу избежать этого.
В моей системе XP, установленной по умолчанию, для этого нет переменной среды. Вы можете перечислить все переменные с помощью команды "set" (без параметров) в командной строке. Так что, вероятно, вам нужно сделать тест.
Если вы не хотите тестировать версию ОС, вы можете просто проверить, существует ли «Документы», а если нет, то попробовать «Мои документы» или наоборот. Однако это не идеально, потому что у s / o могла быть папка «Documents» на его машине XP.
Кстати: моя система немецкая, поэтому папка называется «Dokumente». Возможно, вам придется принять это во внимание.
Путь к этой папке хранится в
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
в Личный
. Однако вам понадобится доступ к реестру.
Источник: Microsoft
C:\Documents and Settings\mrabinovitch>set | grep -i document
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\myuser\Application Data
HOMEPATH=\Documents and Settings\myuser
USERPROFILE=C:\Documents and Settings\myuser
как видите, такой возможности не существует.
Если вы наберете:
set
В командной строке вы получите список всех переменных среды, определенных в вашей системе.
Глядя на те, которые определены у меня (Windows 7 Home Premium), ни один из них не указывает на «Мои документы».
К вашему сведению:
Функция SHGetSpecialFolderPath может использоваться для получения пути к каталогу «Мои документы». В качестве альтернативы можно использовать метод Environment.GetFolderPath в .Net