Войти

Показать полную графическую версию : [решено] Получить %appdata% всех пользователей и скопировать туда набор файлов.


mozk
22-01-2011, 06:35
Скрипт, по замыслу, запускает WPI с компкат диска под админом. Дальше алгоритм такой:

Получаем имя пользователя
Получаем путь к его %appdata%
Копируем туда файл/папку
Go to пункт 1


Затык собственно на первых двух пунктах, как лучше сделать и возможно ли такое в принципе на BAT/CMD?
Нужно получать имена пользователей от системы? Или лучше сканировать папку с профилями?
Как получить список папок в директории известно, но как этот список подставлять в переменные?
И еще права на файлы нужно соблюсти. Думается что пользователь ничего сделать не сможет с тем файликами которые скопируются от админа? Или они системой верно назначаются?

Проверил вопрос про права на файлы, вроде бы все нормально, система выставляет права как надо и пользователь имеет полный доступ к файлам скопированным от админа.

amel27
22-01-2011, 18:47
пример копирования папки "C:\TEST" в "%appdata%\TEST" всех профилей КРОМЕ скрытых (Default User, LocalService, NetworkService) и профиля "All Users":
for /f "delims=" %%a in ('dir/b/ad-h "%userprofile%\..\*"^|findstr/ixvc:"All Users"') do (
xcopy /q/s/y/r/h "C:\TEST\*" "%userprofile%\..\%%a\Application Data\TEST\"
)

mozk
23-01-2011, 15:45
Благодарю за готовое решение!
Вот код батника где оно используется:

@Echo Копируем настройки XnView...
@CD /D "%~dp0"
@SET way=.
@for /f "delims=" %%a in ('dir/b/ad-h "%userprofile%\..\*"^|findstr/ixvc:"All Users"') do ( xcopy /q/s/y/r/h "%way%\xnview.ini" "%userprofile%\..\%%a\Application Data\XnView\" )




© OSzone.net 2001-2012