Usuário com melhor resposta
Dúvida Script .bat

Pergunta
-
Prezados,
Estou tentando fazer um script para gerenciar o tempo de energia do monitor, incluir o comando para todos é até simples, entretanto, estou tentado setar um tempo para um grupo de estações e para outro grupo de estações outro tempo...escrevi até o momento o seguinte:
@echo off echo Seta gerenciamento de energia do monitor echo %computername% if %computername% == psfn-1525718 ( echo powercfg change monitor-timeout-ac 10 ) else (if %computername% neq %computername% ( echo powercfg change monitor-timeout-ac 5 ) )
O que eu queria era o seguinte: para estações psfn-xxxxx, psfn-yyyyyyy, psfn-zzzzzz, setem o comando de 10 min, e para as demais estações (diferentes das listadas anteriormente), podem setar 5min.
Poderiam dar uma luz? Não entendo nada de .bat
Grato,
Edinaldo Oliveira
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
** Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. **----------------------------------------------------------------------
Convidem seus colegas para participarem do fórum Technet Brasil, assim todos ganham!!! Para entender melhor como, clique aqui.
- Editado Fábio JrModerator sexta-feira, 21 de novembro de 2014 15:36 Código
Respostas
-
Se .BAT tivesse o OR (ou) seria o ideal, mas não tem.
Também não gosto de ficar criando uma cadeia grande de IFs.
Eu faria assim:
@ECHO OFF ::TRÊS CASOS IF %COMPUTERNAME% == psfn-xxxxx echo powercfg change monitor-timeout-ac 10 & GOTO :EOF IF %COMPUTERNAME% == psfn-yyyyyyy echo powercfg change monitor-timeout-ac 10 & GOTO :EOF IF %COMPUTERNAME% == psfn-zzzzzz echo powercfg change monitor-timeout-ac 10 & GOTO :EOF ::PARA OS DEMAIS COMPUTADORES echo powercfg change monitor-timeout-ac 5
Fábio de Paula Junior
- Marcado como Resposta Edinaldo Junior sexta-feira, 21 de novembro de 2014 17:35
-
@ECHO OFF findstr /i %computername% c:\temp\computadores.txt > nul IF %ERRORLEVEL% EQU 0 echo powercfg change monitor-timeout-ac 10 & GOTO :EOF echo powercfg change monitor-timeout-ac 5
Utilizo o findstr pra procurar dentro do arquivo computadores.txt.
Se ele encontra o comando retorna errorlevel=0
Fábio de Paula Junior
- Marcado como Resposta Edinaldo Junior segunda-feira, 24 de novembro de 2014 12:46
Todas as Respostas
-
Se .BAT tivesse o OR (ou) seria o ideal, mas não tem.
Também não gosto de ficar criando uma cadeia grande de IFs.
Eu faria assim:
@ECHO OFF ::TRÊS CASOS IF %COMPUTERNAME% == psfn-xxxxx echo powercfg change monitor-timeout-ac 10 & GOTO :EOF IF %COMPUTERNAME% == psfn-yyyyyyy echo powercfg change monitor-timeout-ac 10 & GOTO :EOF IF %COMPUTERNAME% == psfn-zzzzzz echo powercfg change monitor-timeout-ac 10 & GOTO :EOF ::PARA OS DEMAIS COMPUTADORES echo powercfg change monitor-timeout-ac 5
Fábio de Paula Junior
- Marcado como Resposta Edinaldo Junior sexta-feira, 21 de novembro de 2014 17:35
-
Fabio, pois é...depois pensei algo assim como você falou:
@echo off
echo Seta gerenciamento de energia do monitor
echo %computername%
if %computername% equ PSFN-1525718 (goto sit1)
if %computername% neq PSFN-1525718 (goto sit2) else (goto fim)
:sit1
powercfg change monitor-timeout-ac 10
echo Seta 10
goto fim
:sit2
powercfg change monitor-timeout-ac 5
echo Seta 5
:fimEntretanto, teria como colocar mais de um computador na mesma linha? tipo:
IF %COMPUTERNAME% == psfn-xxxxx & psfn-yyyyy & psfn-pppppp
Obrigado!
Edinaldo Oliveira
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
** Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. **----------------------------------------------------------------------
Convidem seus colegas para participarem do fórum Technet Brasil, assim todos ganham!!! Para entender melhor como, clique aqui.
-
-
-
Segui sua dica, veja código final:
@ECHO OFF
:LISTAGEM COMPUTADORES PARA 30MIN
:----------------------
:EDINALDO
IF %COMPUTERNAME% == PSFN-1525718 powercfg change monitor-timeout-ac 30 & echo Setado Desligamento monitor 30 minutos & GOTO :EOF
:DRA JANIFFER
IF %COMPUTERNAME% == PSFN-3870242 powercfg change monitor-timeout-ac 30 & echo Setado Desligamento monitor 30 minutos & GOTO :EOF
:DR ISMAEL
IF %COMPUTERNAME% == PSFN-3453990 powercfg change monitor-timeout-ac 30 & echo Setado Desligamento monitor 30 minutos & GOTO :EOF
:DRA MIRIAN
IF %COMPUTERNAME% == PSFN-3870238 powercfg change monitor-timeout-ac 30 & echo Setado Desligamento monitor 30 minutos & GOTO :EOF
:DR NELSON
IF %COMPUTERNAME% == PSFN-3870241 powercfg change monitor-timeout-ac 30 & echo Setado Desligamento monitor 30 minutos & GOTO :EOF
:DR BRUNO
IF %COMPUTERNAME% == PSFN-3870240 powercfg change monitor-timeout-ac 30 & echo Setado Desligamento monitor 30 minutos & GOTO :EOF
:DRA MARYSSA
IF %COMPUTERNAME% == PSFN-3870239 powercfg change monitor-timeout-ac 30 & echo Setado Desligamento monitor 30 minutos & GOTO :EOF
:LISTAGEM COMPUTADORES PARA 5MIN
powercfg change monitor-timeout-ac 5
echo Setado Desligamento monitor 5 minutos
A outra alternativa, seria, ao invés pelo nome da estação, comparar com algum arquivo instalado na estação...o que acha? melhor assim ou com o arquivo? (só não sei como seria o código)
Grato,
Edinaldo Oliveira
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
** Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. **----------------------------------------------------------------------
Convidem seus colegas para participarem do fórum Technet Brasil, assim todos ganham!!! Para entender melhor como, clique aqui.
-
É uma boa ideia essa de usar arquivo. Eu gosto dessa opção do arquivo porque ela já fica preparada para ser usada até pra quem não entende de script porque basta adicionar o nome do computador no arquivo, dessa forma o seu script também já fica preparado para qualquer quantidade de computadores.
Fábio de Paula Junior
-
Tens ideia de como seria esse código para ver o arquivo?
Edinaldo Oliveira
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
** Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. **----------------------------------------------------------------------
Convidem seus colegas para participarem do fórum Technet Brasil, assim todos ganham!!! Para entender melhor como, clique aqui.
-
@ECHO OFF findstr /i %computername% c:\temp\computadores.txt > nul IF %ERRORLEVEL% EQU 0 echo powercfg change monitor-timeout-ac 10 & GOTO :EOF echo powercfg change monitor-timeout-ac 5
Utilizo o findstr pra procurar dentro do arquivo computadores.txt.
Se ele encontra o comando retorna errorlevel=0
Fábio de Paula Junior
- Marcado como Resposta Edinaldo Junior segunda-feira, 24 de novembro de 2014 12:46
-
Fabio, no caso, é só ir colocando os computadores que quero que tenham 10min no arquivo computadores.txt ou no caso, ele só verifica se existe o arquivo no computador e seta 10min?
O echo é realmente necessário?
Valeu!
Edinaldo Oliveira
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
** Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. **----------------------------------------------------------------------
Convidem seus colegas para participarem do fórum Technet Brasil, assim todos ganham!!! Para entender melhor como, clique aqui.
-
Fábio, testei aqui....primeira!!!!
Ficou perfeito, pois é só cadastrar o computador no arquivo txt...ficou bem mais decente agora..
No caso, só tirei o "echo"
Valeu mesmo, abraço!!
Edinaldo Oliveira
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
** Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde. **----------------------------------------------------------------------
Convidem seus colegas para participarem do fórum Technet Brasil, assim todos ganham!!! Para entender melhor como, clique aqui.
- Editado Edinaldo Junior segunda-feira, 24 de novembro de 2014 12:48
-