Любой язык - Какое значение переменной среды в случае переноса конечной папки?

Ответить
Аватара пользователя
wiznv

Любой язык - Какое значение переменной среды в случае переноса конечной папки?

Сообщение wiznv »

ОС Windows XP (потом будет W7)



Задача: Создать универсальный скрипт для бэкапа с последующим его размножением через GPO



Проблема: Есть папка системная "Мои документы", конечная папка изменилась и находится на D:\Petrov (свойство Мои документы->переместить) хотя по ярлыку Мои документы (в пуске или на раб.столе) попадаем куда нужно.



переменная %HOMEPATH%\Мои документы перемещает в исходную системную папку, а нужно в переназначенную (D:\Petrov). Как определить или может быть создаю универсальную переменную для обозначения именно этой папки (так чтобы работало на всех компьютерах учитывая что названия конечных папок разные)?



p.s. есть хорошая прога - nnbackup, она находит нужную папку. где бы она не была. Значит способ найти папку Мои документы есть но у нее свои переменные, которые естествено не сработают если просто в проводнике открывать. Или нужен путь к ярлыку Мои документы..
Аватара пользователя
Iska

Re: Любой язык - Какое значение переменной среды в случае переноса конечной папки?

Сообщение Iska »

Попробуйте использовать WSH и, возможно, Проводник для получения пути:



Код:

Код: Выделить всё

WScript.Echo WScript.CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
WScript.Echo WScript.CreateObject("Shell.Application").NameSpace("shell:Personal").self.Path
Аватара пользователя
apozlevich

Re: Любой язык - Какое значение переменной среды в случае переноса конечной папки?

Сообщение apozlevich »

Ну или через реестр



Код:

Код: Выделить всё

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Аватара пользователя
wiznv

Re: Любой язык - Какое значение переменной среды в случае переноса конечной папки?

Сообщение wiznv »

Цитата apozlevich:



Ну или через реестр

Код:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Любой язык - Какое значение переменной среды в случае переноса конечной папки?




Да, это подходит. Осталось присвоить новой переменой значение ключа Personal.Спасибо.
Аватара пользователя
wiznv

Re: Любой язык - Какое значение переменной среды в случае переноса конечной папки?

Сообщение wiznv »

всем привет. хочу продолжить тему чтобы не начинать по новой...



Для чего это было нужно?

Вот. Нечто подобное я хотел сделать:




Цитата:



For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"^|Find /I "Personal"`) Do set Person=%%J

"C:\Program Files\7-Zip\7z.exe" a -t7z -ssw -mx1 -p12345 -scsWIN -mhe "\\10.10.10.10\User_backup$\User\Backup_mydoc.7z" -r %Person%



Нужно было считать переменную из реестра т.к. путь к папке Мои документы был переназначен в корень С: а название этих папок у всех разные (C:\Petrov, C:\Ivanov и т.п.) (все происходит пока в Windows XP) ну и потом использовать эту переменную для архивации\бэкапа.



Это работает но вложенные папки не архивируются.

Добавил %Person%\* (как если бы это была не переменная, а путь - C:\Petrov\*) но тогда переменная не работает и остается только \* а это вобще все файлы на компьютере, т.е. не то что нужно.



Может есть у кого умные мысли.. ? (если нет то не пишите или спросите что еще нужно написать чтобы дать ответ)
Аватара пользователя
wiznv

Re: Любой язык - Какое значение переменной среды в случае переноса конечной папки?

Сообщение wiznv »

Цитата Iska:



Возможно и появятся, если Вы изложите Ваши мысли по-русски.
Любой язык - Какое значение переменной среды в случае переноса конечной папки?




Всем написано на русском, хватит чтобы понять о чем речь. Что именно Вам не понятно?
Аватара пользователя
apozlevich

Re: Любой язык - Какое значение переменной среды в случае переноса конечной папки?

Сообщение apozlevich »

wiznv, дело в ключах 7z, курите мануал. Как-то возился с той же проблемой, в итоге у меня даже ключа -r нет:



Код:

Код: Выделить всё

7z a -t7z -m0=BCJ2 -m1=LZMA2 "..\Programs\Files\%~1.7z" "%~1\*"
Ответить

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