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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как изменить библиотеки в Windows7?

Ответить
Настройки темы
CMD/BAT - Как изменить библиотеки в Windows7?

Пользователь


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

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


Изменения
Автор: SvoiLudi
Дата: 30-05-2010
Как изменить библиотеки в Windows7?

Поменял местоположение папки МОИ ДОКУМЕНТЫ, а в библиотеках в проводнике показывается по-старому (с:\users). пробовал копировать файл библиотеки документов - не получается. но если нажать -ПУСК-ДОКУМЕНТЫ - показывает уже новое местоположение. то же самое по другим библиотекам.

Код: Выделить весь код
rem Создаю папку МОИ ДОКУМЕНТЫ и другие папки md "V:\Мои Документы"  rem Копирую Документы, Рабочий Стол, Избранное... этого пользователя с раздела, где Windows, на раздел с документами Xcopy "%USERPROFILE%"\Favorites "v:\Избранное /v /f /e /h /y Xcopy "%USERPROFILE%"\"Documents" "v:\Мои Документы" /v /f /e /h /y  rem То же самое для Общей информации  md "V:\Общие\Общие Документы"  Xcopy "%PUBLIC%"\"Documents" "v:\Общие\Общие Документы" /v /f /e /h /y /s   rem Скроем исходные папки  attrib +h "%USERPROFILE%"\"Documents"   rem Настраиваем Windows на использование этих папок FOR %%d IN (c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST %%d:\32x.reg SET MyFlashDrive=%%d: copy "%MyFlashDrive%\Documents.library-ms" "v:\Библиотеки с Windows 7 и новее\Documents.library-ms" /v /y    For /F "Tokens=7 Delims=\" %%A In ('REG QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList" /s^|find "S-1-5-21-"') Do (        REG QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList\%%A" /v ProfileImagePath|Find /I "%username%" >nul&&Call :Func %%A&&GoTo :EOF ) Echo Профиль пользователя %ProfileName% не найден. GoTo :EOF  :Func :: Здесь пишем свои команды, SID передается в качестве параметра %1. Пример команды ниже Echo Профиль пользователя %ProfileName% найден, его SID - %1   REG ADD "HKEY_USERS\%1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v {1B3EA5DC-B587-4786-B4EF-BD1DC332AEAE} /t REG_SZ /d "v:\Библиотеки с Windows 7 и новее" /f   REG ADD "HKEY_USERS\%1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal" /t REG_SZ /d "v:\Мои Документы" /f     REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Documents" /t REG_SZ /d "v:\Общие\Общие Документы" /f   REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /f /v "Common Desktop" /t REG_EXPAND_SZ /d "v:\Общие\Общий Рабочий стол"   Set xOS=x86  If Defined PROCESSOR_ARCHITEW6432 (Set xOS=x64) Else If "%PROCESSOR_ARCHITECTURE%"=="AMD64" Set xOS=x64 rem if "%xOS%"=="x64" "%WINDIR%\regedit.exe" /s "%MyFlashDrive%\64x.reg"  if "%xOS%"=="x64" REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\Shell Folders" /v "Common Documents" /t REG_SZ /d "v:\Общие\Общие Документы" /f  if "%xOS%"=="x64" REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explorer\User Shell Folders" /f /v "Common Documents" /t REG_EXPAND_SZ /d "v:\Общие\Общие Документы"

Отправлено: 21:44, 28-05-2010

 

(*.*)


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

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


Цитата SvoiLudi:
Как изменить библиотеки в Windows7? »
Написано много кода, но не очень понятно, чего вы пытаетесь добиться. Опишите словами свою цель.

Библиотеки - это обычные XML файлы. Читайте материалы сайта Подробное руководство по использованию библиотек Windows 7

P.S. Вы не первый день на форуме, так что, пожалуйста, используйте тег code для оформления кода (см. в конце шапки темы http://forum.oszone.net/thread-140910.html)

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


Отправлено: 21:57, 28-05-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


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

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


читал эту статью. поэтому скопировал xml-файл с библиотеками - нифига не работает. значит, что-то не так делаю. что?

Отправлено: 22:13, 28-05-2010 | #3


Пользователь


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

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


задача - переместить папку МОИ ДОКУМЕНТЫ - с диска C: на диск V:

цель - сохранить эту папку при восстановлении образа диска C:

Отправлено: 10:38, 30-05-2010 | #4


(*.*)


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

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


Цитата SvoiLudi:
задача - переместить папку МОИ ДОКУМЕНТЫ - с диска C: на диск V: »
А, так вы уже десяток тем по этому вопросу создали...

Вам просто при установке нужно другой раздел для профилей указать с помощью файла ответов, и можно будет обойтись без кучи тем и скриптов.

[видео] Как быстро и грамотно переместить профили пользователей на другой раздел

P.S. Код оформите по правилам, больше просить не буду.

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


Последний раз редактировалось Vadikan, 20-05-2013 в 15:14. Причина: обновлен URL


Отправлено: 12:39, 30-05-2010 | #5


Пользователь


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

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


а если уже стоит винда и нужно такое проделать?

Цитата Vadikan:
Вам просто при установке нужно другой раздел для профилей указать с помощью файла ответов, и можно будет обойтись без кучи тем и скриптов.
Microsoft-Windows-Shell-Setup | FolderLocations | ProfilesDirectory
См. также http://support.microsoft.com/kb/929831 »
ВРОДЕ И ПОЛУЧАЮТСЯ ЗАТЕМ ПРОБЛЕМЫ, ЦИТИРУЮ:

Цитата:
Эти автоматической настройки имеют следующие известные проблемы: При использовании автоматической настройки FolderLocations для перемещения пользовательских данных или данных программы в другом месте, кроме папки% SystemDrive%, можно блокировать обновления для других версий Windows Vista или более поздних версий в Microsoft Windows. Если вы используете System Preparation Tool (Sysprep), чтобы применить FolderLocations автоматической настройки, некоторые переходы системной директории не указывают на новое местоположение цели. Следующие переходы каталог системы по-прежнему указывают на старых местах: C: \ Documents и Настройка продолжает указывать на C: \ Users. C: \ ProgramData \ Desktop продолжает указывать на C: \ Users \ Public \ Desktop. C: \ ProgramData \ Documents продолжает указывать на C: \ Users \ Public \ Documents. C: \ ProgramData \ Favorites продолжает указывать на C: \ Users \ Public \ Favorites. Если вы используете Windows Vista программа установки применяются FolderLocations автоматической настройки, переходов системной директории не указывают на новое местоположение цели. Следующие переходы каталог системы по-прежнему указывают на старых местах: C: \ Documents и Настройка продолжает указывать на C: \ Users. C: \ Users \ Default User продолжает указывать на C: \ Users \ Default. C: \ Users \ All Users продолжает указывать на C: \ ProgramData.
C: \ Users \ Имя_Пользователя\ Documents

и выдаётся в библиотеке ДОКУМЕНТЫ, хотя

C: \ Users \ Public \ Documents - не выдаётся (заменяется на v:\Общие\Общие Документы)

Последний раз редактировалось SvoiLudi, 30-05-2010 в 14:17.


Отправлено: 14:04, 30-05-2010 | #6


Googler


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

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


Цитата SvoiLudi:
задача - переместить папку МОИ ДОКУМЕНТЫ - с диска C: на диск V: »
разве только как пример управления библиотеками из CMD через ShLib и SLUtil
копирование/редирект "Документов" и "Избранного" текущего пользователя:
Код: Выделить весь код
@Echo Off

Call :REDIR Personal "V:\Users\Admin\Documents" "C:\Users\Admin\AppData\Roaming\Microsoft\Windows\Libraries\Documents.library-ms"
Call :REDIR Favorites "V:\Users\Admin\Favorites"
Exit

:REDIR
::----------------------------------------
::%1- ID пользовательского каталога
::%2- новый путь к каталогу
::%3- путь к файлу библиотеки (опция)
::----------------------------------------
SetLocal
::--- пути ключей реестра ----------------
Set KEY_SHF=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Set KEY_USF=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Set KEY_SIW=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\WorkingSetRules
Set KEY_SIP=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\Gather\Windows\SystemIndex\Sites\LocalHost\Paths
Set KEY_SIS=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\Gather\Windows\SystemIndex\StartPages
::--- читаем текущий путь ----------------
For /F "Tokens=2* Delims=	 " %%i In ('REG Query "%KEY_SHF%" /v %~1^|Find "REG_SZ"') Do Set $OLD=%%j
::--- создание/настройка целевой папки ---
If Not Exist "%~2" MD "%~2"
ATTRIB +R -H "%~2"& ATTRIB +H -R "%$OLD%"
ATTRIB -R -H -S "%$OLD%\desktop.ini"
COPY "%$OLD%\desktop.ini" "%~2" /Y
If Exist "%~2\desktop.ini" DEL /F/Q "%$OLD%\desktop.ini"
ATTRIB +R +H +S "%~2\desktop.ini"
::--- копирование содержимого ------------
XCOPY /S/K "%$OLD%\*" "%~2\"
::--- поиск параметров Windows Search ----
For /F "Delims=" %%i In ('REG Query "%KEY_SIW%" /s /f "file:///%$OLD%\\" /d /e^|Find /I "%KEY_SIW%"') Do Set SUB_SIW=%%i
For /F "Delims=" %%i In ('REG Query "%KEY_SIP%" /s /f "file:///%$OLD%\\" /d /e^|Find /I "%KEY_SIP%"') Do Set SUB_SIP=%%i
For /F "Delims=" %%i In ('REG Query "%KEY_SIS%" /s /f "%$OLD%\\" /d /e^|Find /I "%KEY_SIS%"') Do Set SUB_SIS=%%i
::--- замена параметров WindowsSearch ----
If Defined SUB_SIW REG ADD "%SUB_SIW%" /v URL /t REG_SZ /d "file:///%~2\\" /f
If Defined SUB_SIP REG ADD "%SUB_SIP%" /v URL /t REG_SZ /d "file:///%~2\\" /f
If Defined SUB_SIS REG ADD "%SUB_SIS%" /v URL /t REG_SZ /d "%~2\\" /f
::--- правим библиотеку ------------------
If Not "%~3"=="" ShLib Remove "%~3" "%$OLD%"
If Not "%~3"=="" ShLib Add "%~3" "%~2"
If Not "%~3"=="" ShLib SetSaveLoc "%~3" "%~2"
::--- вбиваем новый путь -----------------
REG ADD "%KEY_SHF%" /v "%~1" /t REG_SZ /d "%~2" /f
REG ADD "%KEY_USF%" /v "%~1" /t REG_EXPAND_SZ /d "%~2" /f
::----------------------------------------
EndLocal& GoTo :EOF
P.S. иногда могут возникать конфликты доступа при удалении пути из файла библиотеки

Последний раз редактировалось amel27, 30-05-2010 в 15:20.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:18, 30-05-2010 | #7


Пользователь


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

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


я правильно понял?

либо использовать предложенный Вами скрипт, либо одну из двух утилит?

Ваш код сработал!!!

Отправлено: 14:56, 30-05-2010 | #8


Googler


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

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


Цитата SvoiLudi:
либо использовать предложенный Вами скрипт, либо одну из двух утилит »
скрипт - пример использования одной из утилит (ShLib)

Отправлено: 15:14, 30-05-2010 | #9


Пользователь


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

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


хочу заменить путь

"C:\Users\Admin\AppData\Roaming\Microsoft\Windows\Libraries\Documents.library-ms"

на

v:\Библиотеки с Windows 7 и новее

как это сделать?

Цитата amel27:
скрипт - пример использования одной из утилит (ShLib) »
т.е. эта утилита выдала такой скрипт?

не скачал ещё ни одной утилиты, а скрипт работает

Отправлено: 16:18, 30-05-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как изменить библиотеки в Windows7?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Documents.library-ms - как перенастроить библиотеки в Windows 7? SvoiLudi Скриптовые языки администрирования Windows 0 09-04-2010 23:34
Разное - [решено] Как найти себе Windows7? baa123 Microsoft Windows 7 4 13-11-2009 17:34
Интерфейс - Как убрать ненужные папки из библиотеки? die-frage Microsoft Windows 7 0 06-11-2009 11:56
C/C++ - [решено] Как в С вызвать функцию из Delphi библиотеки? mingw Программирование и базы данных 6 06-07-2009 10:11
Как узнать какие библиотеки динамически линкуются Mihael Общий по Linux 10 30-01-2003 04:12




 
Переход