Batch-Satti
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Batch-Satti

Você não está conectado. Conecte-se ou registre-se

Fazer Backup do Registro de chave excluida? REG não funfa...

2 participantes

Ir para baixo  Mensagem [Página 1 de 1]

paladini

paladini

E aí pessoal, to desenvolvendo um pequeno removedor de vírus + limpador de PC (dps posto aew o download) - claro que nada tão foda como os que vcs fazem aqui,mas ta indo...

mas tipo, eu já sabia disso daqui:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Dai vou botar em um .bat para aumentar a velocidade da internet explorer, com esses comandos: (eh tudo junto no bloco de notas - aqui ficou separado)

RED DELETE HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace /v ClassId key {D6277990-4C6A-11CF-8D87-00AA0060F5BF} /f

Salvo tudo normal, mas quando executo da isso daqui:

"ERRO: Sintaxe Errada
Digite /? [...]"

Vocês sabem o que pode ser? Não é só nessa subchave, tem outra que eu tento modificar e da a mesma coisa.

Outra coisa, como crio um backup dessa chave que eu exclui/ modifiquei?

Por favor me ajudem,tenho mais dúvidas, mas vou postando aos poucos...

Até mais galera



Última edição por NeoqJav em Qua Fev 02, 2011 10:07 am, editado 1 vez(es) (Motivo da edição : quote de branco para azul, legível)

Sargita

Sargita

Código:
RED DELETE HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace /v ClassId key {D6277990-4C6A-11CF-8D87-00AA0060F5BF} /f

Vc colocou RED e nao REG

paladini

paladini

tá aqui eu escrevi errado, mas no .bat tá certo =d

ahudsuhasd. E outra coisa, parece que meu comando DEL/Erase não funciona.

Sempre dá que nenhum arquivo foi encontrado
tipo,eu faço isso: (digasse que eu criei uma pasta 123 no %programfiles%.)


@echo off
echo.
echo Deletando Arquivo...
echo.
CD\
CD %programfiles%
DEL /s /q /f 123
REM Caso não funcione eu boto o comando abaixo tbm
RD /s /q 123
echo.
echo Arquivo Deletado
echo.
pause


Se eu faço isso direto pelo DOS, funciona, mas no .bat não ; é muito estranho. Alguem pode saber o porque? Se alguem tiver disposto a ajudar, passo parte do código do meu arquivo, pra vcs verem qual é o problema (eh um pouco grande).

Falows galera, aguardo resposta

Sargita

Sargita

Posta o Soucer (codigo do batch) no site:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
e coloca o link aki!

So assim tra como te ajudar!

Mas ai vai umas dicas!

C:\WINDOWS>HELP RD
Remove (exclui) uma pasta.

RMDIR [/S] [/Q] [unidade:]caminho
RD [/S] [/Q] [unidade:]caminho

/S Remove todas as pastas e arquivos da pasta
especificada, além dela mesma. Utilizado para remover uma
árvore de pastas.

/Q Modo silencioso. Não pede confirmação para remover a árvore de
pastas ao se passar o parâmetro /S.


tem o RMdir q tem a msm funçao do RD

C:\WINDOWS>HELP RMDIR
Remove (exclui) uma pasta.

RMDIR [/S] [/Q] [unidade:]caminho
RD [/S] [/Q] [unidade:]caminho

/S Remove todas as pastas e arquivos da pasta
especificada, além dela mesma. Utilizado para remover uma
árvore de pastas.

/Q Modo silencioso. Não pede confirmação para remover a árvore de
pastas ao se passar o parâmetro /S.


Uma explicçao com exemplo de REG del!

C:\WINDOWS>REG DELETE /?

REG DELETE KeyName [/v ValueName | /ve | /va] [/f]

KeyName [\\Machine\]FullKey
Machine Nome do computador remoto - omitindo, padrões do computador
atual
Apenas HKLM e HKU estão disponíveis em computadores remotos
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey Nome completo de uma chave do Registro na ROOTKEY selecionada
ValueName Nome do valor a ser excluído na chave selecionada
Se omitido, todas as subchaves e valores na chave são excluídos
/ve excluir o valor de nome de valor vazio (padrão)
/va excluir todos os valores nesta chave
/f Força a exclusão sem perguntar

Exemplos:

REG DELETE HKLM\Software\MyCo\MyApp\Timeout
Exclui a chave to Registro Timeout e suas subchaves e valores

REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
Exclui o valor do Registro MTU em MyCo em ZODIAC


paladini

paladini

eu já to ligado no que vc falou ai (maior parte das coisas) daqui a pouco posto o código nesse site aew...
----
Uma coisa, eu tenho um blog ([Tens de ter uma conta e sessão iniciada para poderes visualizar este link] não é muito grande, mas eu tava afim de fazer uns tutoriais de .bat - comandos DOS (etc.) . Mas eu não sei muito, se alguem quizer me ajudar, terá espaço para postar o que quizer e terá todos os devidos créditos.
Quem quizer me ajudar, so fala comigo aqui nesse topico ou me envia MP...Ficarei mto agradecido em receber ajuda =D.

Sargita

Sargita

Muito lega..na proprio forum tem a parte de tutoriais..la vc encontrara muita coisa....
e outro lugar com explicaçoes interessante e exemplo é:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]


Gostei do Blog....
tenho um tbm:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

paladini

paladini

Aqui est´ manolo:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Espero que ngn copie isso, mesmo sendo bem ruim demorei pra fazer...

Vejam o que ta errado e me digam, por favor.

------------------------
Legal seu blog

Ngn quer virar postador do meu blog...

Sargita

Sargita

Muito legal!
hehe so uma dica:
Na parte:
Código:
CD\
CD %programfiles%
CD Windows Live
CD Contacts

Pode ser substiruido pou:
Código:
CD %programfiles%\Windows Live\Contacts

Se eu vir qualquer coisa eu posto aki..ou se eu mexer em algo!

Sargita

Sargita

Código:
REG DELETE "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace" /v ClassId key {D6277990-4C6A-11CF-8D87-00AA0060F5BF} /f
]

Nao seria:
Código:
REG DELETE HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace /va {D6277990-4C6A-11CF-8D87-00AA0060F5BF} /f
]
(acho q nao se usa ""...tente o nome com e sem aspas!)
ou

Código:
REG DELETE HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\{D6277990-4C6A-11CF-8D87-00AA0060F5BF} /f

Sargita

Sargita

Outra coisa tente usar um for nessa parte diinue o tamanho do script

O
Código:
if exist msnmsgr.cmd attrib -s -h -r msnmsgr.cmd
if exist msnmsgr.cmd del /q msnmsgr.cmd
if exist taskmam.exe attrib -s -h -r taskmam.exe
if exist taskmam.exe del /q taskmam.exe
if exist down32.cmd attrib -s -h -r down32.cmd
if exist down32.cmd del /q down32.cmd
if exist atualiza2.gif attrib -s -h -r atualiza2.gif
if exist atualiza2.gif del /q atualiza2.gif
if exist atualiza.gif attrib -s -h -r atualiza.gif
if exist atualiza.gif del /q atualiza.gif
if exist msn.dat attrib -s -h -r msn.dat
if exist msn.dat del /q msn.dat
if exist xsmith.scr attrib -s -h -r xsmith.scr
if exist xsmith.scr del /q xsmith.scr
if exist it.cmd attrib -s -h -r it.cmd
if exist it.cmd del /q it.cmd
if exist br.cmd attrib -s -h -r br.cmd
if exist br.cmd del /q br.cmd
if exist gr.cmd attrib -s -h -r gr.cmd
if exist gr.cmd del /q gr.cmd
if exist bb.cmd attrib -s -h -r bb.cmd
if exist bb.cmd del /q bb.cmd
if exist nc.cmd attrib -s -h -r nc.cmd
if exist nc.cmd del /q nc.cmd
if exist hs.cmd attrib -s -h -r hs.cmd
if exist hs.cmd del /q hs.cmd
if exist cx.cmd attrib -s -h -r cx.cmd
if exist cx.cmd del /q cx.cmd
if exist un.cmd attrib -s -h -r un.cmd
if exist un.cmd del /q un.cmd
if exist ba.cmd attrib -s -h -r ba.cmd
if exist ba.cmd del /q ba.cmd
if exist msnmsgr.cmd goto NR
if exist taskmam.exe goto NR

Vira algo como:

Código:
for %%a in (msnmsgr.cmd,taskmam.exe,down32.cmd,atualiza2.gif,atualiza.gif msn.dat,xsmith.scr,it.cmd,br.cmd,gr.cmd,bb.cmd,nc.cmd,hs.cmd,cx.cmd,un.cmd,ba.cmd) do
set /p var= %%a
If Exist %var% attrib -s -h -r %var%
if exist %var% del /q %var%
Nao lembro se sera "set /p var= %%a" ou "set var= %%a"

Nao teste..mas acho q funciona!

outra coisa:
Código:

echo REGEDIT4 >>%SystemDrive%\fx.reg
echo. >>%SystemDrive%\fx.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] >>%SystemDrive%\fx.reg
echo \\\"Shell\\\"=- >>%SystemDrive%\fx.reg

acho q funciona melhor:
Código:

(echo REGEDIT4) >>%SystemDrive%\fx.reg
(echo.) >>%SystemDrive%\fx.reg
(echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]) >>%SystemDrive%\fx.reg
(echo \\\"Shell\\\"=-) >>%SystemDrive%\fx.reg
Entre ()

seria interessante colocar:
uma variavel com reg query e reg delete...
Tipo se o reg query achar a chave de inicializaçao com o msn.exe..e o reg del apaga o msn.exe

Chaves de inicialzaçao:
Código:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

C:\WINDOWS>REG QUERY /?

REG QUERY KeyName [/v [ValueName] | /ve] [/s]
[/f Data [/k] [/d] [/c] [/e]] [/t Type] [/z] [/se Separator]

KeyName [\\Machine\]FullKey
Machine - nome do computador remoto, omitindo padrões para o
computador atual. Apenas HKLM e HKU estão disponíveis em
computadores remotos
FullKey - na forma de nome ROOTKEY\SubKey
ROOTKEY - [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey - o nome completo da chave do Registro na
ROOTKEY selecionada

/v Consulta valores específicos de uma chave do Registro.
Se omitido, todos os valores na chave serão consultados

O argumento dessa opção só poderá ser opcional quando especificado
junto com a opção /f. Esta especifica para pesquisar apenas em
nomes de valores.

/ve Consulta o valor padrão ou nome de valor em branco (Padrão).

/s Consulta todas as subchaves e valores recursivamente (como dir /s)

/se Especifica o separador (comprimento de apenas 1 caractere) na
seqüência de dados p/ REG_MULTI_SZ. Usa "\0" como separador
padrão.

/f Especifica os dados ou o padrão ser pesquisado.
Usar aspas duplas se a cadeia de caracteres contiver espaços.
O padrão é "*".

/k Especifica uma pesquisa apenas nos nomes de chave.

/d Especifica a pesquisa apenas nos dados.

/c Especifica que a pesquisa faz distinção entre maiúsculas e
minúsculas.
A pesquisa padrão faz distinção entre maiúsculas e minúsculas.

/e Especifica que devem ser retornadas apenas correspondências
exatas.
Por padrão, todas as correspondências são retornadas.

/t Especifica o tipo de dados do valor do Registro.
Os tipos válidos são:
REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ,
REG_DWORD, REG_BINARY, REG_NONE
Usa como padrão todos os tipos

/z Modo Detalhado: mostra o equivalente numérico para o tipo do
nome de valor.

Exemplos:

REG QUERY HKLM\Software\Microsoft\ResKit /v Version
Exibe o valor do Registro Version

REG QUERY \\ABC\HKLM\Software\Microsoft\ResKit\Nt\Setup /s
Exibe todas as subchaves e valores na chave do Registro Setup
no computador remoto ABC

REG QUERY \\ABC\HKLM\Software\Microsoft\ResKit\Nt\Setup /se #
Exibe todas as subchaves e valores com "#" como o separador
de todos os nomes de valor cujo tipo seja REG_MULTI_SZ.

REG QUERY HKLM /f SYSTEM /t REG_SZ /c /e
Exibe a chave, o valor e os dados com distinção entre maiúsc. e minúsc.
e ocorrências exatas de "SYSTEM" na raiz HKLM para o tipo de dados
REG_SZ

REG QUERY HKCU /f 0F /d /t REG_BINARY
Exibe a chave, o valor e os dados para as ocorrências de "0F" nos dados
na raiz HKCU para o tipo de dados REG_BINARY

REG QUERY HKLM\SOFTWARE /ve
Exibe o valor e os dados para o valor vazio (padrão)
em HKLM\SOFTWARE

paladini

paladini

blz vou ver tudo isso depois, obrigado por postar...

Pode explicar direitinho aquele parte de diminuir o script, não consegui interpretar mto bem. Não adianta só botar no código do programa se eu não souber pra que que serve.
Também não entendi esse bagulho ai do MSN (o ultimo código) - você quer dizer para eu fechar processos desenecessários na inicialização do sistema? - Seria isso?

muito obrigado por postar, do registro eu vou ver.

Sargita

Sargita

Código:
for %%a in (msnmsgr.cmd,taskmam.exe,down32.cmd,atualiza2.gif,atualiza.gif msn.dat,xsmith.scr,it.cmd,br.cmd,gr.cmd,bb.cmd,nc.cmd,hs.cmd,cx.cmd,un.cmd,ba.cmd) do
set /p var= %%a
If Exist %var% attrib -s -h -r %var%
if exist %var% del /q %var%

tipo ao invez de fazer akela lista montruosa de comando..fikar repetindo a vida toda...
vc coloca um For..ai ele cria uma variavel..dentro dessa variavel estao todos os programas listados pelo for..ai nao fica repetindo..ele faz como se fosse repetendo..mas nao vai...
nao sei explicar direito...
ta ai uma explicaçao de for:

C:\WINDOWS>HELP FOR
Executa um comando especificado para cada arquivo em um conjunto de arquivos.

FOR %variável IN (conjunto) DO comando [parâmetros]

%variável Especifica um parâmetro substituível formado por uma só letra.
(conjunto) Especifica um conjunto de um ou mais arquivos. Podem-se
usar curingas.
comando Especifica o comando a ser executado em cada arquivo.
parâmetros Especifica os parâmetros ou opções do comando especificado.


Para usar o comando FOR em um programa em lotes, especifique %%variável em
vez de %variável. Diferenciam-se maiúsculas de minúsculas nos nomes das
variáveis, de forma que, por exemplo, %i é diferente de %I.

Se as extensões de comando estiverem ativadas, haverá suporte para os
seguintes formatos adicionais do comando FOR:

FOR /D %variável IN (conjunto) DO comando [parâmetros]

Se o conjunto contiver curingas, ele corresponderá aos nomes
de pasta em vez de nomes de arquivo.

FOR /R [[unidade:]caminho] %variável IN (conjunto) DO comando [parâmetros]

Orienta a árvore de pastas com raiz na [unidade:]caminho, executando a
instrução FOR em cada pasta da árvore. Se não houver especificação de
pasta após /R, a pasta atual será usada. Se o conjunto for apenas um
único caractere de ponto (.), ele enumerará apenas a árvore de pastas.

FOR /L %variável IN (início,incremento,fim) DO comando [parâmetros]

O conjunto é uma seqüência de números de início ao fim, por quantidade de
incremento. Portanto, (1,1,5) geraria a seqüência 1 2 3 4 5 e (5,-1,1)
geraria a seqüência (5 4 3 2 1)

FOR /F ["opções"] %variável IN (conjunto_de_arquivos) DO comando
[parâmetros]
FOR /F ["opções"] %variável IN ("cadeia_de_caracteres") DO comando
[parâmetros]
FOR /F ["opções"] %variável IN ('comando') DO comando [parâmetros]

ou, se a opção usebackq estiver presente:

FOR /F ["opções"] %variável IN (conjunto_de_arquivos) DO comando
[parâmetros]
FOR /F ["opções"] %variável IN ('cadeia_de_caracteres') DO comando
[parâmetros]
FOR /F ["opções"] %variável IN (`comando`) DO comando [parâmetros]

conjunto de nomes de arquivo é um ou mais nomes de arquivos. Cada
arquivo é aberto, lido e processado antes de se passar para o próximo
arquivo em conjunto de nomes de arquivo. O processamento consiste em
ler o arquivo, quebrá-lo em linhas individuais de texto e analisar
cada linha para zero ou mais tokens. O corpo de for loop é chamado
em seguida com o conjunto de valores de variável para a(s) cadeia(s)
de caracteres de token encontrada(s). Por padrão, /F transfere o
primeiro token separado por espaço de cada linha de cada arquivo.
As linhas em branco são ignoradas. É possível substituir o comportamento
de análise padrão especificando os parâmetros "opções" opcionais. Essa
é uma cadeia de caracteres entre aspas que contém uma ou mais
palavras-chave para especificar diferentes opções de análise. As
palavras-chave são:

eol=c - especifica caractere de comentário de fim de linha
(somente um)
skip=n - especifica o número de linhas a serem ignorados no
início do arquivo.
delims=xxx - especifica um conjunto de delimitadores. Substitui
o conjunto de delimitadores padrão de espaço e
tabulação.
tokens=x,y,m-n - especifica quais tokens de cada linha serão
transferidos para o corpo de cada iteração.
Isso alocará nomes de variáveis
adicionais. O formato m-n é um intervalo,
especificando do emésimo até o enésimo token. Se
o último caractere na cadeia de caracteres tokens=
for um asterisco, uma variável adicional será
alocada
e receberá o texto restante na linha após o último
token analisado.
usebackq - especifica que a nova semântica está em vigor,
onde uma cadeia de caracteres entre aspas
simples é executada como um comando e uma
cadeia de caracteres entre aspas simples é um
comando de cadeia de caracteres literal e
permite o uso de aspas para citar nomes de arquivos
em um conjunto de nomes de arquivo.

Alguns exemplos podem ajudar:

FOR /F "eol=; tokens=2,3* delims=, " %i in (meu_arquivo.txt) do
echo %i %j %k

analisaria cada linha em meu_arquivo.txt, ignorando linhas que começassem
com um ponto-e-vírgula, passando o segundo e terceiro token de cada
linha para o corpo do comando for, com tokens delimitados por vírgulas
e/ou espaços. Observe que comandos dentro do corpo do for fazem
referência
a %i para obter o segundo token, %j para obter o terceiro token e
%k para obter todos os tokens restantes após o terceiro. No caso de
nomes de arquivos contendo espaços, é necessário colocá-los entre aspas.
Para usar aspas dessa forma, também é necessário usar a opção usebackq ou
as aspas serão interpretadas como se estivessem definindo uma cadeia
de caracteres literal a ser analisada.

%i é declarado explicitamente na instrução for e %j e %k
são declarados implicitamente através da opção tokens=. É possível
especificar até 26 tokens através da linha tokens=, contanto que
isso não origine uma tentativa de declarar uma variável mais alta do que
a letra 'z' ou 'Z'. Lembre-se de que as variáveis FOR são formadas por
uma só letra, diferenciam maiúsculas e minúsculas, são globais e
não é possível haver mais de 52 ativas no total em momento algum.

Também é possível usar a lógica de análise de FOR /F em uma cadeia
de caracteres imediata, ao transformar o conjunto de nomes de arquivo
dentro de parêntesis em uma cadeia de caracteres entre aspas simples.
A cadeia de caracteres será tratada como uma única linha de entrada de um
arquivo e
será analisada.

Finalmente, é possível usar o comando FOR /F para analisar a saída de um
comando. Para isso, transforme o conjunto de nomes de arquivo dentro dos
parênteses em uma cadeia de caracteres entre aspas simples. A cadeia de
caracteres
será tratada como uma linha de comando, que será transferida para um
CMD.EXE filho e a saída será capturada na memória e analisada como se
fosse um arquivo. Assim, o seguinte exemplo:

FOR /F "usebackq delims==" %i IN (`conjunto`) DO @echo %i

enumeraria os nomes de variáveis de ambiente no ambiente atual.

Além disso, a substituição das referências da variável FOR foi aprimorada.
Agora é possível usar a seguinte sintaxe opcional:

%~I - expande %I removendo quaisquer aspas em volta (")
%~fI - expande %I para um nome de caminho totalmente qualificado
%~dI - expande %I para somente uma letra de unidade
%~pI - expande %I para somente um caminho
%~nI - expande %I para somente um nome de arquivo
%~xI - expande %I para somente uma extensão de arquivo
%~sI - o caminho expandido contém somente nomes curtos
%~aI - expande %I para atributos de arquivo do arquivo
%~tI - expande %I para data/hora do arquivo
%~zI - expande %I para o tamanho do arquivo
%~$PATH:I - pesquisa as pastas listadas na variável
de ambiente PATH e expande %I para o
nome totalmente qualificado da primeira pasta encontrada.
Se o nome da variável de ambiente não estiver definido
ou o arquivo não for encontrado pela pesquisa, esse
modificador expandirá para a cadeia de caracteres vazia

Os modificadores podem ser combinados para obter resultados compostos:

%~dpI - expande %I para somente uma letra de unidade e caminho
%~nxI - expande %I para somente um nome de arquivo e extensão
%~fsI - expande %I para somente um nome de caminho completo com
nomes curtos
%~dp$PATH:I - pesquisa as pastas listadas na variável de ambiente PATH
para %I e expande para a letra de unidade e caminho da
primeira encontrada.
%~ftzaI - expande %I para uma linha de saída parecida com DIR

Nos exemplos acima, %I e PATH podem ser substituídos por outros valores
válidos. A sintaxe %~ é terminada por um nome de variável FOR válido.
O uso de nomes de variáveis em maiúsculas como %I facilita a leitura e
evita confusão com os modificadores, que não fazem diferenciação entre
maiúsculas e minúsculas.


"Também não entendi esse bagulho ai do MSN (o ultimo código) - você quer dizer para eu fechar processos desenecessários na inicialização do sistema? - Seria isso?"
Isso msm...pq as vezes tem muito processo que inicia..mas que so pesa..nen é usado!

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos