PDA

Показать полную графическую версию : [решено] Как скопировать с помощью BAT файл в профиль Firefox


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

zion87
15-01-2013, 00:17
@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
а если добавлю папку extensions содержание bat надо менять?

zion87
15-01-2013, 00:23
а если добавлю папку extensions » куда? что за папка?

Valek271183
15-01-2013, 00:25
вот по этому пути %appdata%\Mozilla\Firefox\Profiles\имя профиля.default\extensions мне нужно скопировать папку extensions

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

zion87
15-01-2013, 00:29
@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
в адресе после папки Profiles должна быть папка с "именем_профиля.default" вот в неё и нужно скопировать файл places.sqlite, а имя этого профиля всегда разное и хранится оно в файле %appdata%\Mozilla\Firefox\profiles.ini

zion87
15-01-2013, 06:18
Valek271183, я с первого раза понял, что в адресе после папки Profiles должна быть папка с "именем_профиля.default" »
для этого и есть строка 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

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

если вы уж так хотите взять адрес профиля именно из файла 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
Что-то не получается, 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
C:\Users\1\ » - ваш пользователь точно 1 ???
если имя вашего профиля содержит русские символы(например C:\Users\Вася\), то есть смысл поменять кодировку

chcp 1251

Valek271183
17-01-2013, 08:46
да - имя пользователя 1, да и адрес %appdata% :)

gora
17-01-2013, 15:04
Пишет
Файл не найденЧто то не так »
Видимо у Вас там (в папке "%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
Ну как в коде видно файл places.sqlite находится в корне диска C:\ и он не может скопировать поверх самого себя, там он точно есть.
bat запускаю из корня диска C:\ там же лежит и файл, так же пробовал запустить BAT с рабочего стола написав без пути set file=places.sqlite? потому что файл лежал рядом (UAC отключен, переменные вроде все правильно)

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

zion87
17-01-2013, 19:38
конечно его там нет, мне его туда надо скопировать »
надо было сразу сказать что он там отсутствует ... надеюсь файл 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
@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
gora, спасибо ОГРОМНОЕ, это то что мне нужно!




© OSzone.net 2001-2012