Помогите доработать скрипт.
Цитата:
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%
Пояснение:
ОС - windows XP.
У пользователей переназначен путь к папке Мои документы. Например С:\Ivanov. В связи с этим Путь
Цитата:
%USERPROFILE%\Мои документы
- не работает.
Есть параметр в реестре который отвечает за путь к переназнаенной папке. Скрипт этот путь считывает и присваивет переменной %Person%. Далее идет скрипт с ключами для архивации 7zip.
Проблема:
Вобщем, трюк с переменной сработал но частично - не архивируются вложенные папки. Я добавил %Person%\* - в этом случае переменная %Person% не читается и остается только \*. Кавычки не помогают...
CMD/BAT - 7zip+bat+переменные среды
-
Iska
Re: CMD/BAT - 7zip+bat+переменные среды
Можете ведь, коллега, если захотите
.
Сама «корневая» папка «Мои документы» (в примере — «Ivanov») также добавляется в архив:
Код:
«Корневая» папка «Мои документы» (в примере — «Ivanov») в архив не добавляется:
Код:
А Ваша проблема, как я понимаю, в том, что «reg.exe» выдаёт на выходе кириллицу в ANSI, а не в OEM. Отсюда и переменная окружения «Person» выглядит, например, так:
Код:
Попробуйте, например, так:
Код:
.Сама «корневая» папка «Мои документы» (в примере — «Ivanov») также добавляется в архив:
Код:
Код: Выделить всё
"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%\"«Корневая» папка «Мои документы» (в примере — «Ivanov») в архив не добавляется:
Код:
Код: Выделить всё
"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%\*"А Ваша проблема, как я понимаю, в том, что «reg.exe» выдаёт на выходе кириллицу в ANSI, а не в OEM. Отсюда и переменная окружения «Person» выглядит, например, так:
Код:
Код: Выделить всё
%USERPROFILE%\╠юш фюъєьхэЄ√Попробуйте, например, так:
Код:
Код: Выделить всё
>nul chcp 1251
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
>nul chcp 866
echo [%Person%]
"%ProgramFiles%\7-Zip\7z.exe" a -t7z -ssw -mx1 -p12345 -scsWIN -mhe "\\10.10.10.10\User_backup$\User\Backup_mydoc.7z" -r "%Person%\*"-
Georgio
Re: CMD/BAT - 7zip+bat+переменные среды
wiznv, попробуйте в цикле сделать так:
Код:
.
Код:
Код: Выделить всё
For /F "UseBackQ Tokens=1,2*" %%I In (
`Reg Query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"^|Find /I "Personal"`
) Do (
If %%I==Personal (
Set Person=%%K
)).