30 de nov. de 2015

Extrair texto de variáveis na linha de comando do Windows

%<variável>:~<primeiro_caracter>,<quantidades_de_caracteres>%
Ex.:
set teste=Olá Mundo!

echo %teste%
Olá Mundo!

echo %teste:~4,5%
Mundo

29 de nov. de 2015

Screenshots via linha de comando no Windows

Existem várias maneiras de fazer isso, mas todas dependem de algum programa externo. Na minha opnião a melhor opção é usar o utilitário NirCmd, até porque ele consegue fazer muito mais do que tirar screenshots.
A sintaxe segundo o manual é muito simples:
Ex. 1. Para capturar a tela:
nircmd.exe savescreenshot nome-da-imagem.png
Ex. 2. Para aguardar 5 segundos antes da captura:
nircmd.exe cmdwait 5000 savescreenshot nome-da-imagem.png
O valor deve ser expresso em milisegundos, ou seja, multiplique o número de segundos por 1000.
Ex. 3. Para capturar 10 screenshots com intervalo de 1 minuto (60 segundos):
nircmd.exe loop 10 60000 savescreenshot nome-da-imagem~$currdate.MM_dd_yyyy$-~$currtime.HH_mm_ss$.png
Não é necessário usar a opção cmdwait do ex. 2, pois ela já faz parte da opção loop. Os parâmetros no nome do arquivo adicionam data e hora evitando sobreescrita.
O bom do NirCmd é que você não precisa escrever nenhuma linha a mais para capturar screenshots em sequência ou com um pseudo agendamento, isso evita ter que usar o agendador de tarefas do Windows quando não é necessário um acompanhamento detalhado ou por períodos curtos de tempo.