Logo Hardware.com.br
AcNeto
AcNeto Veterano Registrado
758 Mensagens 56 Curtidas

[Resolvido] Bat para backup favoritos_navegadores

#1 Por AcNeto 20/06/2015 - 12:10
Bom dia.
Pensei em fazer um bat para copiar apenas os favoritos do chrome e firefox.
No chrome funciona, já no firefox mesmo usando um comando antigo de limpeza buscando a pasta especifica não está funcionando.
Windows 7 64

#####################################

@echo off
mkdir "c:\Favoritos_Navegadores" >>>>> Cria a pasta no C: = OK
xcopy "%localappdata%\google\Chrome\User Data\Default\Bookmarks" "c:\Favoritos_Navegadores" >>>>> Copia o arquivo para a pasta criada no C/: = OK
ECHO Entra no Diretorio
SET/p directory="%appdata%\Mozilla\Firefox\Profiles\*.default" >>>> Busca a pasta "*.default" do mozilla, no prompt aparece ela, porém ..
CHDIR %directory% >>>> Ao listar a pasta, se encontra no mesmo diretorio onde está o arquivo .bat
xcopy places.sqlite c:\Favoritos_Navegadores >>>> Já tentei com " " entre os caminhos e nada

pause

#####################################

Também tentei:
cd "%appdata%\Mozilla\Firefox\Profiles\*.default"
xcopy places.sqlite c:\Favoritos_Navegadores
xcopy "places.sqlite" "c:\Favoritos_Navegadores"

Se colocar dir para verificar o diretório, mesma coisa, fica no mesmo local onde está o .bat e diz que o arquivo não existe.

É um pequeno detalhe que está passando e não acho.
Abraço.
Placa Gigabyte 970-ud3p / Cooler Master TX3 Evo / Placa de vídeo GTX 750Ti
Processador FX 8320 / 16 GB Corsair Vengeance 1600
SSD OCZ 128 Sistemas (Win7 64/Mint 64)
HD 2 TB, 2 TB WD / HD 3 TB Seagate
Fonte corsair 520W /Dual Monitor LG 23"
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#2 Por Fergo
20/06/2015 - 21:39
Você não pode dar um changedir para um diretório usando wildcard (no caso, o asterisco). Você está pedindo para o prompt "troque o diretório atual para um diretório terminado em alguma coisa ponto default". E se houver mais de uma que atenda esse padrão, para qual ele vai? Por isso o comando não é valido.
O nome da pasta de perfil é fixo, portanto sabendo qual perfil você quer copiar, não há necessidade de utilizar um wildcard. Também não há necessidade de ficar trocando de diretórios.


mkdir "C:\Favoritos_Navegadores"
xcopy "%localappdata%\google\Chrome\User Data\Default\Bookmarks" "C:\Favoritos_Navegadores"
xcopy "%appdata%\Mozilla\Firefox\Profiles\xxxxxxx.default" "C:\Favoritos_Navegadores


O script acima deve funcionar, desde que você indique literalmente o nome do perfil do Firefox (trocando o xxxxxxx
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
AcNeto
AcNeto Veterano Registrado
758 Mensagens 56 Curtidas
#3 Por AcNeto
20/06/2015 - 23:13
Fergo disse:
Você não pode dar um changedir para um diretório usando wildcard (no caso, o asterisco). Você está pedindo para o prompt "troque o diretório atual para um diretório terminado em alguma coisa ponto default". E se houver mais de uma que atenda esse padrão, para qual ele vai? Por isso o comando não é valido.
O nome da pasta de perfil é fixo, portanto sabendo qual perfil você quer copiar, não há necessidade de utilizar um wildcard. Também não há necessidade de ficar trocando de diretórios.


mkdir "C:\Favoritos_Navegadores"
xcopy "%localappdata%\google\Chrome\User Data\Default\Bookmarks" "C:\Favoritos_Navegadores"
xcopy "%appdata%\Mozilla\Firefox\Profiles\xxxxxxx.default" "C:\Favoritos_Navegadores


O script acima deve funcionar, desde que você indique literalmente o nome do perfil do Firefox (trocando o xxxxxxx


O comando dir era só para eu verificar se estava realmente dentro da pasta default, não sabia que podia ter outro efeito, de começo fiz como vc colocou no exemplo, direto pelo xcopy.
Mas o problemas que esse backup não é de um pc especifico, e sim de clientes, onde as vezes os navegadores estão mortos de tanta coisa que entrou nas extensões, nem modo seguro salva hehehe.
Por isso usei o "*", onde já usei esse tipo de busca em outro bat, mas no outro eu era obrigado ir ate a pasta *.default, depois fazer um outro cd "extensões" por exemplo, senão também não funcionava.

Mesmo sem o changedir ocorre mesma coisa, ele não acha o arquivo, então essa é a dificuldade, preciso que funcione ele buscando o .default universalmente, para facilitar o backup.

Abraço.
Placa Gigabyte 970-ud3p / Cooler Master TX3 Evo / Placa de vídeo GTX 750Ti
Processador FX 8320 / 16 GB Corsair Vengeance 1600
SSD OCZ 128 Sistemas (Win7 64/Mint 64)
HD 2 TB, 2 TB WD / HD 3 TB Seagate
Fonte corsair 520W /Dual Monitor LG 23"
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#4 Por Fergo
20/06/2015 - 23:42
AcNeto disse:
O comando dir era só para eu verificar se estava realmente dentro da pasta default, não sabia que podia ter outro efeito, de começo fiz como vc colocou no exemplo, direto pelo xcopy.
Mas o problemas que esse backup não é de um pc especifico, e sim de clientes, onde as vezes os navegadores estão mortos de tanta coisa que entrou nas extensões, nem modo seguro salva hehehe.
Por isso usei o "*", onde já usei esse tipo de busca em outro bat, mas no outro eu era obrigado ir ate a pasta *.default, depois fazer um outro cd "extensões" por exemplo, senão também não funcionava.

Mesmo sem o changedir ocorre mesma coisa, ele não acha o arquivo, então essa é a dificuldade, preciso que funcione ele buscando o .default universalmente, para facilitar o backup.

Abraço.


Entendi.
Tente o seguinte então:


mkdir "C:\Favoritos_Navegadores"
xcopy "%localappdata%\google\Chrome\User Data\Default\Bookmarks" "C:\Favoritos_Navegadores"
for /d %%a in ("%appdata%\Mozilla\Firefox\Profiles\*.default&quot do xcopy %%~fa "C:\Favoritos_Navegadores"


OBS.: Não tenho como testar os scripts aqui, estou postando de cabeça.
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
AcNeto
AcNeto Veterano Registrado
758 Mensagens 56 Curtidas
#5 Por AcNeto
21/06/2015 - 14:17
Fergo disse:
Entendi.
Tente o seguinte então:


mkdir "C:\Favoritos_Navegadores"
xcopy "%localappdata%\google\Chrome\User Data\Default\Bookmarks" "C:\Favoritos_Navegadores"
for /d %%a in ("%appdata%\Mozilla\Firefox\Profiles\*.default&quot do xcopy %%~fa "C:\Favoritos_Navegadores"


OBS.: Não tenho como testar os scripts aqui, estou postando de cabeça.


Fiz o teste, mas adicionei o arquivo que eu queria, não é a pasta inteira, mas somente o arquivo "places.sqlite", também não funcionou.
Eu testei com uma linha simples igual a do chrome que está funcionando, mas um diretório antes do "*.default", criei um arquivo places.sqlite dentro do profile mesmo, e adivinha, ele copia.
A linha:
xcopy "%appdata%\Mozilla\Firefox\Profiles\places.sqlite" "C:\Favoritos_Navegadores" >>> Funciona.

xcopy "%appdata%\Mozilla\Firefox\Profiles\*.default\places.sqlite" "C:\Favoritos_Navegadores" >>> Não lista o diretório, e não acha o arquivo.

Problema está para entrar dentro do .default do usuário no mozilla, ali que ele se perde e não encontra o arquivo.
Placa Gigabyte 970-ud3p / Cooler Master TX3 Evo / Placa de vídeo GTX 750Ti
Processador FX 8320 / 16 GB Corsair Vengeance 1600
SSD OCZ 128 Sistemas (Win7 64/Mint 64)
HD 2 TB, 2 TB WD / HD 3 TB Seagate
Fonte corsair 520W /Dual Monitor LG 23"
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#6 Por Fergo
21/06/2015 - 14:44
Pega o meu exemplo anterior e poe o arquivo sqlite no final:


mkdir "C:\Favoritos_Navegadores"
xcopy "%localappdata%\google\Chrome\User Data\Default\Bookmarks" "C:\Favoritos_Navegadores"
for /d %%a in ("%appdata%\Mozilla\Firefox\Profiles\*.default") do xcopy "%%~fa\places.sqlite" "C:\Favoritos_Navegadores"


Se não funcionar, tente sem as aspas no "%%~fa\places.sqlite"

Att,
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
AcNeto
AcNeto Veterano Registrado
758 Mensagens 56 Curtidas
#7 Por AcNeto
21/06/2015 - 15:53
Fergo disse:
Pega o meu exemplo anterior e poe o arquivo sqlite no final:



Se não funcionar, tente sem as aspas no "%%~fa\places.sqlite"

Att,


Funcionou, mas descobri que preciso de outro arquivo, fiz outra linha seguindo seu exemplo:
for /d %%a in ("%appdata%\Mozilla\Firefox\Profiles\*.default") do xcopy "%%~fa\places.sqlite-wal" "C:\Favoritos_Navegadores"

Teria como colocar em apenas um for os dois arquivos? places.sqlite e places.sqlite-wal

Poderia indicar algum tutorial ou material sobre uso de for e if em bat, achei interessante.

Abraço.
Placa Gigabyte 970-ud3p / Cooler Master TX3 Evo / Placa de vídeo GTX 750Ti
Processador FX 8320 / 16 GB Corsair Vengeance 1600
SSD OCZ 128 Sistemas (Win7 64/Mint 64)
HD 2 TB, 2 TB WD / HD 3 TB Seagate
Fonte corsair 520W /Dual Monitor LG 23"
Fergo
Fergo Highlander Registrado
9.3K Mensagens 1.1K Curtidas
#8 Por Fergo
21/06/2015 - 19:26
AcNeto disse:
Funcionou, mas descobri que preciso de outro arquivo, fiz outra linha seguindo seu exemplo:
for /d %%a in ("%appdata%\Mozilla\Firefox\Profiles\*.default") do xcopy "%%~fa\places.sqlite-wal" "C:\Favoritos_Navegadores"

Teria como colocar em apenas um for os dois arquivos? places.sqlite e places.sqlite-wal

Poderia indicar algum tutorial ou material sobre uso de for e if em bat, achei interessante.

Abraço.


Tem sim:

for /d %%a in ("%appdata%\Mozilla\Firefox\Profiles\*.default&quot do (
xcopy "%%~fa\places.sqlite" "C:\Favoritos_Navegadores"
xcopy "%%~fa\places.sqlite-wal" "C:\Favoritos_Navegadores" )


Tenha em mente que se existir mais de um perfil na pasta do Firefox, ele vai acabar sobre-escrevendo os favoritos do perfil anterior.

Programação em batch é bem chata e nada intuitiva. Shell script é bem mais poderosa, mas a sintaxe é um lixo também. De qualquer forma, pra mim a melhor referência em processamento em lotes é o link abaixo:
http://ss64.com/nt/

Outra alternativa seria você aprender/utilizar o PowerShell, que seria o "novo terminal do Windows" e está presente por padrão em todas as versões a partir do Vista. Ele possui um ambiente MUITO mais organizado, inclusive para scripting.
Site pessoal www.fergonez.net
Portfolio
www.fbirck.com
Artigos
Informática
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal