Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

(*.*)


Сообщения: 36574
Благодарности: 6705

Профиль | Сайт | Отправить PM | Цитировать


Как назначить переменную папке C:\Documents and Settings

Пожалуй, самый короткий путь предложил EgOrus здесь:
Код: Выделить весь код
SET dir=%AllUsersProfile%
SET mydir=%dir:~0,-10%
Первая строка создает переменную dir равную %AllUsersProfile%. Последняя в свою очередь разбирается как Х:\Documents and Settings\All Users (Х - буква диска). Вторая строка создает переменную mydir, которая получена вырезанием из переменной dir нуля (0) символов с начала и десяти (10) символов с конца. Строго говоря, ноль можно было опустить. Если отнять от Х:\Documents and Settings\All Users последние десять символов, то и получится искомая переменная X:\Documents and Settings

Данная переменная действительна только в течении данной cmd сессии и не является постоянной.

Как назначить переменную папке C:\Documents and Settings (II)

Есть проблема, которая может возникнуть при использовании предыдущего метода: папка %ALLUSERSPROFILE% была перемещена с какой-либо целью. В таком случае, путь к директории профилей может оказаться ложным. Тогда надо брать значение из реестра. Зайдите в ветку реестра и посмотрите какие там значения параметров.
Код: Выделить весь код
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Их можно использовать
Код: Выделить весь код
@echo off

:: Get the profiles directory from the registry
for /f "usebackq tokens=3,3* delims==	" %%i in (`reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory`) do set profiles=%%i

:: Set the profiles dir as %profiles%
for /f "usebackq delims==" %%i in (`echo %profiles%`) do set profiles=%%i

:: Result
echo %profiles%
pause
exit

-------
Канал Windows 11, etc | Чат @winsiders


Последний раз редактировалось Vadikan, 29-12-2005 в 19:26.


Отправлено: 06:28, 26-12-2005 | #6