Usuário com melhor resposta
script bat com for

Pergunta
-
Olá pessoal...
tenho um script em bat que faz o que preciso, eh simples e funcional..
porem, me deparei com um problema..
coloquei uma variavel pra ele, :: set pc=1% ai quando chamo ele façop:
script.bat nome_micro1
o que ocorre, eh que tenho um arquivo com todas as maquinas, e to fazeno manual, uma por uma.. (nome_micro2, nome_micro_3, e assim vou indo.. )queria que ele lesse esse arquivo e fosse fazendo automatizado..
alguem sabe como fazer isso? pensei em for, mas nao achei nada, talvez nem exista :(
muito obrigado...
infelizmente precisa ser em .bat, pois nao vou conseguir converter ele todo pra vbs
Respostas
-
Faça assim:
FOR /F %i IN (c:\seuarquivo.txt) DO script.bat %i
No seu arquivo coloque uma máquina por linha.
Qualquer dúvida poste e se for útil vote.
Abraço.
Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.- Marcado como Resposta Fábio JrModerator quarta-feira, 7 de novembro de 2012 15:10
Todas as Respostas
-
Faça assim:
FOR /F %i IN (c:\seuarquivo.txt) DO script.bat %i
No seu arquivo coloque uma máquina por linha.
Qualquer dúvida poste e se for útil vote.
Abraço.
Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.- Marcado como Resposta Fábio JrModerator quarta-feira, 7 de novembro de 2012 15:10
-
Bom dia Gabriel,
devo fazer 2 scripts? 1 com o for e ali no DO script.bat, coloco o nome do meu script... deixando os dois scripts na mesma pasta?
ai sempre rodo o script com FOR que vai chamar o completo, certo?
meu script está abaixo, a variavel eh o esquema que falei que uso para fazer 1 máquina por vez sabe..
obrigado pela resposta e aguardo comentários,
Abs
diego
@echo off
REM Utilitário para replace do SyLink...
:: set pc=%1
echo.
echo Fazendo atualizacao do SyLink.xml, Aguarde...
echo.
echo Parando o servico Smc.exe...
sc \\%1 stop SmcServiceecho.
echo Removendo os arquivos SyLink.bak e .xml...
del "\\%1\c$\Arquivos de programas\Symantec\Symantec Endpoint Protection\SyLink.bak"
del "\\%1\c$\Arquivos de programas\Symantec\Symantec Endpoint Protection\SyLink.xml"echo.
echo Copiando o novo SyLink.xml...
xcopy /D /Y \\172.19.1.109\sylink$\SyLink.xml "\\%1\c$\Arquivos de programas\Symantec\Symantec Endpoint Protection\"echo.
echo Iniciando o servico Smc.exe...
sc \\%1 start SmcServiceecho > "\\%1\c$\Arquivos de programas\Symantec\Symantec Endpoint Protection\OK.txt"
echo.
-
-
Cara, fiz assim o for.bat mas nao rolou..
@echo off
FOR /F %i IN "c:\sep\maquinas.txt" DO "C:\sep\for\replace_sylink_net_for.bat" %i
tenho os dois arquivos nos caminhos q indiquei...
replace_sylink_net_for.bat
@echo off
REM Utilitário para replace do SyLink...
echo.
echo Fazendo atualizacao do SyLink.xml, Aguarde...
echo.
echo Parando o servico Smc.exe...
sc \\%i stop SmcServiceecho.
echo Removendo os arquivos SyLink.bak e .xml...
del "\\%i\c$\Arquivos de programas\Symantec\Symantec Endpoint Protection\SyLink.bak"
del "\\%i\c$\Arquivos de programas\Symantec\Symantec Endpoint Protection\SyLink.xml"echo.
echo Copiando o novo SyLink.xml...
xcopy /D /Y \\172.19.1.109\sylink$\SyLink.xml "\\%i\c$\Arquivos de programas\Symantec\Symantec Endpoint Protection\"echo.
echo Iniciando o servico Smc.exe...
sc \\%i start SmcServiceecho > "\\%i\c$\Arquivos de programas\Symantec\Symantec Endpoint Protection\OK.txt"
echo.
pause
que será que faltou?
-
Substitua essa linha:
FOR /F %i IN "c:\sep\maquinas.txt" DO "C:\sep\for\replace_sylink_net_for.bat" %i
FOR /F %i IN ("c:\sep\maquinas.txt") DO "C:\sep\for\replace_sylink_net_for.bat" %i
Abraço.
Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote. -
Oi Gabriel,
consegui desta maneira, veja:
for /F %%i in (c:\sep\maquinas.txt) DO replace_sylink_net_for.bat %%i
outra coisa, como faço para executar o comando abaixo na maquina do usuario, remotamente?
PsExec.exe \\PC "C:\Arquivos de Programas\Symantec\Symantec Endpoint Protection\Smc.exe" -stop
bom.. to tentando com o psexec, mas sempre me da esse erro:
Couldn't access 0301_micro_61:
The network path was not found.Make sure that the default admin$ share is enabled on PC
serah que existe uma outra forma de executar o comando "C:\Arquivos de Programas\Symantec\Symantec Endpoint Protection\Smc.exe" -stop
remoto? preciso que seja chamando pelo script, nao por netlogon sabe?
bom, se puder me dar mais uma dica ai..
abs
-
-
Oi Gabriel,
Nao tenho AD na empresa ainda.. temos samba com openldap e o login script está gigante já..
ai com isso o login script está demorando nas estações, pois temos as filiais com link wan..
ai está por isso de toda essa manobra que preciso fazer sabe..
-
Cara o psexec que vc está utilizando está correto.
Esse problema pode estar ocorrendo justamente devido a lentidão do seu link wan, provavelmente está dando time out nas estações.
Verifique também se não há firewall habilitado ou antivirus bloqueando.
Abraço.
Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.