PDA

Показать полную графическую версию : (solved)Как получить переменную, содержащую путь к директории Documents and Settings?


arial
13-11-2005, 21:18
Сабж, учитывая то, что при установке эта директория могла быть переименована (например в Profiles).

serotka
13-11-2005, 23:04
Сабж, учитывая то, что при установке эта директория могла быть переименована (например в Profiles).
Попробуй эти:
%USERPROFILE%
%ALLUSERSPROFILE%
%HOMEDRIVE%

arial
14-11-2005, 01:46
%USERPROFILE% - C:\Documents and Settings\User
%ALLUSERSPROFILE% - C:\Documents and Settings\All Users
%HOMEDRIVE% - C:

А надо получить C:\Documents and Settings

Vadikan
14-11-2005, 04:16
arial
На самом деле, не совсем понятно зачем все это нужно. Если директория была лишь переименована, осталась в корне диска и профиль в ней находится, то можно так
@echo off
set file=%temp%\profiledir.txt
echo %userprofile% >> %file%
FOR /F "usebackq delims=\ tokens=1,2*" %%i IN (%file%) do set mydir=%%i\%%j\
echo My dir is %mydir%
pause
del /q %file%
exit

Берется путь к профилю, пишется в файл, первые два элемента (tokens) разделенных слэшами (delims) передаются в виде переменных i и j, а файл потом удаляется. Может можно и поизящнее, но я не большой специалист по пакетным файлам :)
Добавлено. Можно не писать в файл, а делать REG QUERY по какому-нибудь ключу, содержащему путь к профилю. Например, APPDATA в HKEY_CURRENT_USER\Volatile Environment. Так скрипт будет покороче.

arial
14-11-2005, 17:16
На самом деле, не совсем понятно зачем все это нужно.
В теме Твики реестра (http://forum.oszone.net/showthread.php?t=41561) есть совет, как перенести полностью настроенный профиль Administrator в профиль Default User:
rem Очистка папки пользователя по умолчанию
RD /s /q "%systemdrive%\Documents and Settings\Default User"

rem Копирование текущего профиля в дефолтовый
xcopy "%USERPROFILE%\*.*" "%systemdrive%\Documents and Settings\Default User" /e /c /I /H /R /K /Y
del /f /q "%systemdrive%\Documents and Settings\Default User\*.*"
attrib +h "%systemdrive%\Documents and Settings\Default User"

rem Копирование реестра
reg save HKCU "%systemdrive%\Documents and Settings\Default User\ntuser.dat"
attrib +H +S "%systemdrive%\Documents and Settings\Default User\ntuser.dat"
Вот для этого и нужно.

zvezduk
15-11-2005, 10:04
FOR /F "tokens=2 delims=\" %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Desktop"') DO SET DESKTOP=%%A

Если стоит русская винда, то возникает проблема с кодировками, папка "Рабочий стол" в cmd выглядит как "╨рсюўшщ ёЄюы" :). Может кто-то подскажет как с этим справиться.

ANDYru
15-11-2005, 11:06
zvezduk
используйте кодировку DOS-866 для написания CMD файлов , советую прогу AkelPad 2.1.5 _http://akelpad.net.ru/download/akelpad.zip

HWG
15-11-2005, 11:22
zvezduk
Посмотри на команду chcp.

zvezduk
15-11-2005, 12:05
Не могу найти номер кодовой страницы для unicode. Он вообще в cmd поддерживается?

HWG
15-11-2005, 12:09
zvezduk
Юникод тебе не нужен, поставь перед своим примером chcp 1251.

zvezduk
15-11-2005, 12:33
1251 не катит, проверял :(. Насколько я знаю, там unicode.

EgOrus
15-11-2005, 15:50
arial
SET wdir=%AllUsersProfile%
SET wdir=%wdir:~0,-10%

arial
15-11-2005, 15:58
EgOrus
Премного благодарен!
Вопрос закрыт! :cool:




© OSzone.net 2001-2012