CMD/BAT - Как изменить библиотеки в Windows7?

Аватара пользователя
SvoiLudi

CMD/BAT - Как изменить библиотеки в Windows7?

Сообщение SvoiLudi »

Как изменить библиотеки в 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:\Общие\Общие Документы"
Аватара пользователя
Vadikan

Re: CMD/BAT - Как изменить библиотеки в Windows7?

Сообщение Vadikan »

Цитата SvoiLudi:



Как изменить библиотеки в Windows7?
CMD/BAT - Как изменить библиотеки в Windows7?




Написано много кода, но не очень понятно, чего вы пытаетесь добиться. Опишите словами свою цель.



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




P.S. Вы не первый день на форуме, так что, пожалуйста, используйте тег code для оформления кода (см. в конце шапки темы
Твики реестра .: [все вопросы] :.
)
Аватара пользователя
amel27

Re: CMD/BAT - Как изменить библиотеки в Windows7?

Сообщение amel27 »

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

Re: CMD/BAT - Как изменить библиотеки в Windows7?

Сообщение SvoiLudi »

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

Re: CMD/BAT - Как изменить библиотеки в Windows7?

Сообщение SvoiLudi »

Цитата SvoiLudi:



задача - переместить папку МОИ ДОКУМЕНТЫ - с диска C: на диск V:
CMD/BAT - Как изменить библиотеки в Windows7?




А, так вы уже десяток тем по этому вопросу
создали
...



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



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




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

Re: CMD/BAT - Как изменить библиотеки в Windows7?

Сообщение Vadikan »

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




Цитата Vadikan:



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

Microsoft-Windows-Shell-Setup | FolderLocations | ProfilesDirectory

См. также
http://support.microsoft.com/kb/929831
CMD/BAT - Как изменить библиотеки в Windows7?




ВРОДЕ И ПОЛУЧАЮТСЯ ЗАТЕМ ПРОБЛЕМЫ, ЦИТИРУЮ:




Цитата:



Эти автоматической настройки имеют следующие известные проблемы: При использовании автоматической настройки 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

Re: CMD/BAT - Как изменить библиотеки в Windows7?

Сообщение SvoiLudi »

Цитата SvoiLudi:



задача - переместить папку МОИ ДОКУМЕНТЫ - с диска C: на диск V:
CMD/BAT - Как изменить библиотеки в Windows7?




разве только как пример управления библиотеками из 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

Re: CMD/BAT - Как изменить библиотеки в Windows7?

Сообщение amel27 »

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



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



Ваш код сработал!!!
Аватара пользователя
SvoiLudi

Re: CMD/BAT - Как изменить библиотеки в Windows7?

Сообщение SvoiLudi »

Цитата SvoiLudi:



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




скрипт - пример использования одной из утилит (ShLib)
Аватара пользователя
SvoiLudi

Re: CMD/BAT - Как изменить библиотеки в Windows7?

Сообщение SvoiLudi »

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



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



на



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



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




Цитата amel27:



скрипт - пример использования одной из утилит (ShLib)
CMD/BAT - Как изменить библиотеки в Windows7?




т.е. эта утилита выдала такой скрипт?



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

Вернуться в «Скриптовые языки администрирования Windows»