![]() |
Изменение месторасположения пользовательских папок
Пытаюсь автоматизировать этот процесс, сменить месторасположение вот этих папок (показано содержимое папки %UserName%, отображение на Рабочем столе которой включается в персонализации). Если зайти в свойство из одной этих папок, то на вкладке Месторасположение можно осуществить эту задачу, но мне надо сделать это автоматически.
Что я делаю. Батником перемещаю все эти (обведены красным) папки из "С:\Users\Leha" в "D:\User", в реестре: Код:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders Как корректно сменить их расположение автоматически, чтобы при этом в свойствах папок не потерялся стандартный механизм смены месторасположения и при этом остались рабочие линки на эти папки в папке %UserName% (что на Рабочем столе)? И поясните, плиз, что из себя представляют эти папки, что на моем скрине (обведены красным), это какие-то виртуальные папки (не симлинки точно)? Опять же хотелось бы знать, как создавать такие "папки" на реальные каталоги, автоматически, разумеется. |
Не ожидал, что не будет ответа/решения на данный вопрос, вроде же простую процедуру пытаюсь выполнить. Или меня никто не понял? Тогда как еще понятнее расписать.
|
У TeraByte Unlimited есть скрипт moveuser.tbs, может это то что тебе нужно:
Цитата:
|
Я немного тупанул, сам не знаю, почему сразу так не сделал. Метод описанный выше работает, только делать это надо при выгруженном explorer.exe, тогда не будет той проблемы, о которой я выше говорил. Ну и обязательно, указывая путь в реестре, этот путь уже должен существовать, на момент запуска explorer.exe, и пользовательская папка, которую мы переносили, не должна оставаться по старому пути, иначе будут дубли в папке %UserName% (на Рабочем столе). Пишу скрипт, чтобы полностью автоматизировать сей процесс, позже выложу, может кому-то еще пригодится.
И еще вопрос. Существует ли метод "мягкой" перезагрузки/обновления оболочки/шела/экплорера, то есть без выгрузки/загрузки процесса explorer.exe (W7)? Что-то вроде того, как происходит обновление ассоциаций, но этого может быть недостаточно для моей задачи. Ведь проводник это умеет делать, хотелось бы знать, возможно ли это осуществить в командой строке (автоматически). |
Существует ли возможность изменить путь "Личной папки" (%UserName%), что на Рабочем столе (вкл. в Персонализации), путь которой ведет в корень "%SystemDrive%\Users\%UserName%", то есть чтобы "Личная папка" открывала содержимой другой папки?
|
Цитата:
Цитата:
|
boss911, возможно здесь то, что вам нужно. Если я правильно понял задачу.
|
popt2t
Нет, это совсем не то, подобной информации/мануала в сети много. Это перенос ВСЕЙ профильной папки пользователя, что мне совсем не нужно, хотя и решило бы мой вопрос, но совсем не так, как мне надо. Мне нужно всего лишь поменять путь, который открывает "Личная папка" (%UserName%), сама эта папка как бы не совсем папка, а некий ярлык. |
Написал для себя скрипт (пакетный файл), автоматизирующий процесс переноса пользовательских папок в другое место, может кому-то понадобится.
В скрипте реализован метод выбора, можно перенести как одну, так и более одной папки (в Windows 7 их всего 11 штук). Чтобы перенести нужную нам папку, необходимо раскомментировать строку (убрать 'REM' в начале строки) и указать/прописать (после знака '=') предпочитаемый путь для переноса (пробелы и кириллица в пути поддерживаются). Все, что нам нужно редактировать/править в скрипте, выделено красным, остальной текст/код правим только в том случае, если понимаем, что делаем и обладаем необходимыми знаниями. Предусмотрен запуск скрипта с ключем /RunOnce, ключ подавляет запросы и сообщения в ходе работы скрипта, а так же перезагрузку explorer.exe (необходимо для применения изменений на рабочей ОС). Данный ключ специально реализован для автоматизации процесса, для запуска из RunOnce, на данном этапе пользователь уже существует, но explorer еще не запущен, скрипт тихо отработает до загрузки Рабочего стола. Скрипт тестировался на Windows 7, если MS ничего не поменяла в более новых ОС (не проверял), то и на них будет работать. UserShellFoldersMove.cmd
Код:
@Echo off |
Делал подобный скрипт для своей работы. Мой вариант проще:
Код:
@ECHO OFF |
Цитата:
|
boss911,
Спасибо. Отличный скрипт. А то приходилось всё менять ручками. Заменил в скрипте D:\USER\ на D:\%Username%\ и теперь вообще все папки переносятся без проблем. Скрипт сам подхватывает имя пользователя. Отлично работает в семёрке, десятке 1607 и десятке 1709 |
Время: 22:02. |
Время: 22:02.
© OSzone.net 2001-