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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как скопировать с помощью BAT файл в профиль Firefox (http://forum.oszone.net/showthread.php?t=251454)

Valek271183 14-01-2013 22:54 2066824

Как скопировать с помощью BAT файл в профиль Firefox
 
Есть такой файл places.sqlite и его нужно копировать в корень профиля Firefox по адресу %appdata%\Mozilla\Firefox\Profiles\имя профиля.default\places.sqlite В папке Firefox есть файл profiles.ini и в нём прописана строка с названием профиля Path=Profiles/имя профиля.default Как с помощью BAT скопировать туда мой файл?

zion87 15-01-2013 00:17 2066872

Код:

@echo off
set file=ПУТЬ К МОЕМУ\places.sqlite
for /f "delims=*" %%H in ('dir /s /b /a-d "%appdata%\Mozilla\Firefox\Profiles\places.sqlite"') do set  adres="%%~dpH"
copy /y "%file%" %adres%
exit


Valek271183 15-01-2013 00:20 2066876

а если добавлю папку extensions содержание bat надо менять?

zion87 15-01-2013 00:23 2066879

Цитата:

Цитата Valek271183
а если добавлю папку extensions »

куда? что за папка?

Valek271183 15-01-2013 00:25 2066880

вот по этому пути %appdata%\Mozilla\Firefox\Profiles\имя профиля.default\extensions мне нужно скопировать папку extensions

кажется bat неправильно написан, в адресе после %appdata%\Mozilla\Firefox\Profiles\ должно быть подставлено имя профиля которое хранится в файле profiles.ini в папке %appdata%\Mozilla\Firefox

zion87 15-01-2013 00:29 2066885

Код:

@echo off
set file=ПУТЬ К МОЕМУ\places.sqlite
set exten=Куда копируем папку
for /f "delims=*" %%H in ('dir /s /b /a-d "%appdata%\Mozilla\Firefox\Profiles\places.sqlite"') do set  adres="%%~dpH"
copy /y "%file%" %adres%
xcopy /e /y /c /h %adres%extensions\ "%exten%\"
exit


Valek271183 15-01-2013 00:48 2066905

в адресе после папки Profiles должна быть папка с "именем_профиля.default" вот в неё и нужно скопировать файл places.sqlite, а имя этого профиля всегда разное и хранится оно в файле %appdata%\Mozilla\Firefox\profiles.ini

zion87 15-01-2013 06:18 2066978

Valek271183, я с первого раза понял, что
Цитата:

Цитата Valek271183
в адресе после папки Profiles должна быть папка с "именем_профиля.default" »

для этого и есть строка
Цитата:

Цитата zion87
for /f "delims=*" %%H in ('dir /s /b /a-d "%appdata%\Mozilla\Firefox\Profiles\places.sqlite"') do set adres="%%~dpH" »

код ищет файл places.sqlite во всех каталогах %appdata%\Mozilla\Firefox\Profiles\ .... не именно в этом а во всех
Код:

@echo off
for /f "delims=*" %%H in ('dir /s /b /a-d "%appdata%\Mozilla\Firefox\Profiles\places.sqlite"') do echo "%%~dpH" && pause

^^^запустите и убедитесь.... ^^^

если вы уж так хотите взять адрес профиля именно из файла
Цитата:

Цитата Valek271183
profiles.ini »

то вот
Код:

@echo off
for /f "tokens=*" %%A in (' more +6 "%appdata%\Mozilla\Firefox\profiles.ini" ') do set prof=%%A
echo %prof:~14% && pause


Valek271183 17-01-2013 00:46 2068524

Что-то не получается,
Код:

set file=C:\places.sqlite
for /f "delims=*" %%H in ('dir /s /b /a-d "%appdata%\Mozilla\Firefox\Profiles\places.sqlite"') do set  adres="%%~dpH"
copy /y "%file%" %adres%
pause

Пишет
Код:

C:\>set file=C:\places.sqlite

C:\>for /F "delims=*" %H in ('dir /s /b /a-d "C:\Users\1\AppData\Roaming\Mozilla
\Firefox\Profiles\places.sqlite"') do set  adres="%~dpH"
Файл не найден

C:\>copy /y "C:\places.sqlite"
Невозможно скопировать файл поверх самого себя.
Скопировано файлов:        0.

C:\>pause
Для продолжения нажмите любую клавишу . . .

Что то не так :(

zion87 17-01-2013 06:13 2068583

Цитата:

Цитата Valek271183
C:\Users\1\ »

- ваш пользователь точно 1 ???
если имя вашего профиля содержит русские символы(например C:\Users\Вася\), то есть смысл поменять кодировку
Код:

chcp 1251

Valek271183 17-01-2013 08:46 2068611

да - имя пользователя 1, да и адрес %appdata% :)

gora 17-01-2013 15:04 2068831

Цитата:

Цитата Valek271183
Пишет
Код:

Файл не найден
Что то не так »

Видимо у Вас там (в папке "%appdata%\Mozilla\Firefox\Profiles\*.default") нет такого файла (places.sqlite)
Попробуйте искать саму папку (надеюсь, что сама папка то у Вас существует!?) :
Код:

@echo off
set file=ПУТЬ К МОЕМУ\places.sqlite
for /f "delims=" %%H in ('dir /s /b /ad "%appdata%\Mozilla\Firefox\Profiles\*.default"') do set adres=%%H
copy /y "%file%" "%adres%\places.sqlite"
exit


Valek271183 17-01-2013 16:29 2068901

Ну как в коде видно файл places.sqlite находится в корне диска C:\ и он не может скопировать поверх самого себя, там он точно есть.
bat запускаю из корня диска C:\ там же лежит и файл, так же пробовал запустить BAT с рабочего стола написав без пути set file=places.sqlite? потому что файл лежал рядом (UAC отключен, переменные вроде все правильно)

Valek271183 17-01-2013 17:46 2068967

%appdata%\Mozilla\Firefox\Profiles\*.default , конечно его там нет, мне его туда надо скопировать... с диска C:\

zion87 17-01-2013 19:38 2069049

Цитата:

Цитата Valek271183
конечно его там нет, мне его туда надо скопировать »

надо было сразу сказать что он там отсутствует ... надеюсь файл signons.sqlite там присутствует???
Код:

@echo off
set file=C:\places.sqlite
for /f "delims=*" %%H in ('dir /s /b /a-d "%appdata%\Mozilla\Firefox\Profiles\signons.sqlite"') do set  adres="%%~dpH"
copy /y "%file%" %adres%
exit


gora 18-01-2013 09:10 2069309

Код:

@Echo Off
:: путь к моему файлу, который нужно скопировать
Set myfile=C:\places.sqlite
:: путь к моей папке, которую нужно скопировать
Set myfolder=C:\extensions
:: путь к ini файлу, из которого нужно прочитать название папки профиля
Set pathini=%appdata%\Mozilla\Firefox\profiles.ini
:: путь, по которому нужно будет создать этот профиль и потом скопировать мои файл и папку
Set outfolder=%appdata%\Mozilla\Firefox

:: читаем название папки профиля из ini файла
For /f "tokens=2 delims==" %%i In ('FindStr /b "Path=" "%pathini%"') Do Set fPath=%%i
:: получаем полный путь папки профиля и правим в нем прямой слеш на обратный
Set fPath=%outfolder%\%fPath:/=\%
Echo %fPath%
:: проверяем наличие папки профиля, и если ее нет, то создаем
If Not Exist "%fPath%" MD "%fPath%"
:: копируем мой файл в папку профиля
Copy /y "%myfile%" "%fPath%\places.sqlite"
:: копируем мою папку в папку профиля (ключи для xCopy можно изменить под собственные задачи)
xCopy /e /i /h /r /k /y "%myfolder%" "%fPath%\extensions"
Pause
Exit


Valek271183 18-01-2013 21:30 2069897

gora, спасибо ОГРОМНОЕ, это то что мне нужно!


Время: 03:35.

Время: 03:35.
© OSzone.net 2001-