Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Изменение размещения папки "Общие документы". (http://forum.oszone.net/showthread.php?t=246075)

d3dyd 03-11-2012 02:09 2017706

Изменение размещения папки "Общие документы".
 
Хочу, чтобы папка находилась по адресу: D:\Общие документы

Чтобы это сделать ручками, нужно прописать новое местоположение в реестре в двух местах:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell folders
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

А как это сделать в одном батничке?
Никак не получается. Помогите, пожалуйста, умные люди!

Iska 03-11-2012 08:58 2017751

Цитата:

Цитата d3dyd
Никак не получается. »

И где Ваш код, в котором никак не получается?

d3dyd 03-11-2012 13:39 2017830

Я думал вы подскажете.
Я пробовал так:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell folders" /v Common Documents /t REG_SZ /d D:\Общие документы /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Common Documents /t REG_SZ /d D:\Общие документы /f

Iska 03-11-2012 13:57 2017834

Код:

@echo off
setlocal enableextensions enabledelayedexpansion

reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell folders" /v "Common Documents" /t REG_SZ /d "D:\Общие документы" /f >nul
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Documents" /t REG_SZ /d "D:\Общие документы" /f >nul

endlocal
exit /b 0

А можно и так:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in ("Shell folders" "User Shell Folders") do (
        reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\%%~i" /v "Common Documents" /t REG_SZ /d "D:\Общие документы" /f >nul
)

endlocal
exit /b 0


gora 03-11-2012 14:10 2017837

Iska, правильнее первый вариант, ибо во второй ветке нужно использовать REG_EXPAND_SZ вместо REG_SZ

d3dyd, не забудьте про кодировку батника (кириллица DOS (866)).
Вас не смущает, что во второй ветке нет абсолютных путей и они все прописаны через переменные?

Iska 03-11-2012 17:02 2017920

Цитата:

Цитата gora
Iska, правильнее первый вариант, ибо во второй ветке нужно использовать REG_EXPAND_SZ вместо REG_SZ »

В данном случае сие необязательно, поскольку автор использует прямой путь, без переменных. Вся разница между REG_EXPAND_SZ и REG_SZ в том, что если читать параметр REG_EXPAND_SZ как REG_SZ — переменные окружения, содержащиеся в параметре типа REG_EXPAND_SZ будут автоматически раскрыты.


Время: 00:48.

Время: 00:48.
© OSzone.net 2001-