Ir ao conteúdo

Posts recomendados

Postado

Olá,

 

Eu utilizo a bat que ao iniciar o sistema, ele salva data e hora, porém queria saber se é possível transformar a data em semana para uma outra finalidade. E caso o computador seja ligado mais de uma vez na semana, o resultado seja subscrito.

 

 

Desde já agradeço.

Postado

Pode usar um for para pegar a Semana do Ano com a ajuda do powershell:

 

Um exemplo simples:

@echo off
for /f "tokens=1" %%a in ('powershell.exe get-date -UFormat %%V^') do set SemanaDoAno=%%a
echo %SemanaDoAno%
pause

 

Um exemplo um pouco mais complexo:

@echo off
SetLocal EnableDelayedExpansion
for /f %%a in ('"prompt $H&for %%b in (1) do rem"') do set "BS=%%a"
Color 0E

:Inicio

IF NOT Defined Data set Data=%Date%
Call :PegaSemana
Title Semana do Ano
cls
echo.
echo  Data Atual %Date% - %Time:~0,5%
echo.
echo  Data: %Data% - %time:~0,5%
echo.
echo  Semana do Ano = !SemanaDoAno!
echo.
echo  Dia da Semana = !Dia!
echo.
set /p "Data=%BS% Para pesquisar outra data informe no seguinte formato: dd/mm/aaaa: "
call :PegaSemana
goto :Inicio
Exit

:PegaSemana
chcp 437> nul
for /f "tokens=1,2 delims=-" %%a in ('powershell.exe ^(get-date !Data! -UFormat %%V-%%A^)') do set SemanaDoAno=%%a&set Dia=%%b
chcp 1252> nul
goto :EOF

 

rlkAA95.gif

Postado

Nossa, ficou muito bom e deu pra entender como funcionam os comandos. Muito obrigado.

Baseado nos exemplos, eu fiz umas alterações e também adicionei o comando pra pegar o dia da semana e jogar em um arquivo txt, porém o arquivo consta com uma sequencia dos dias da semana e não só uma vez.

 

image.png.b864fdf3b58d38310a971c2fda8d443d.png

Postado
@echo off
SetLocal EnableDelayedExpansion
for /f %%a in ('"prompt $H&for %%b in (1) do rem"') do set "BS=%%a"
Color 0E

:Inicio

IF NOT Defined Data set Data=%Date%
Call :PegaSemana
echo !SemanaDoAno! > C:\Log\log_ligar.txt
Exit

:PegaSemana
chcp 437> nul
for /f "tokens=1,2 delims=-" %%a in ('powershell.exe ^(get-date !Data! -UFormat %%V-%%A^)') do set SemanaDoAno=%%a&set Dia=%%b
chcp 1252> nul
goto :EOF

 

Eu consegui resolver a questão de ficar repetindo em várias linhas e consegui que ele sobescreva, mas não consegui fazer o formato de duas casas decimais, ou seja, eu gostaria que o retorno dele no txt fosse no formato XX e não consegui também retirar esse espaço que fica depois do resultado.

Postado

Tenta esse código:

 

@echo off
SetLocal EnableDelayedExpansion
for /f %%a in ('"prompt $H&for %%b in (1) do rem"') do set "BS=%%a"
Color 0E

:Inicio

IF NOT Defined Data set Data=%Date%
Call :PegaSemana
> "C:\Log\log_ligar.txt" echo !SemanaDoAno!
Exit

:PegaSemana
chcp 437> nul
for /f "tokens=1,2 delims=-" %%a in ('powershell.exe ^(get-date !Data! -UFormat %%V-%%A^)') do set SemanaDoAno=%%a&set Dia=%%b
set SemanaDoAno=0!SemanaDoAno!
set SemanaDoAno=!SemanaDoAno:~-2!
chcp 1252> nul
goto :EOF

 

 

  • 3 semanas depois...
Postado

O intuito pra utilização desse batch é acompanhar a semana fiscal, o que nos coloca na semana 4 do mês, porém quando executo os comandos está atualizando para a semana 5

Postado

Me desculpe a ignorância mais o que é uma "semana fiscal"?

Pelo que eu vi pelo batch ele sempre começa uma nova semana na quinta por alguma razão como pode ser visto na foto abaixo.

 

Jvnw30G.png

Postado

Na verdade eu preciso mesmo é do bloco de notas com esse número de semana para que um outro programa de uma máquina Laser o leia e imprima o número na peça.
O que eu faço é usar o agendamento do computador pra rodar o batch todos os dias, mas agora eu parei pra pensar e a melhor solução mesmo seria rodá-lo apenas uma vez na semana pra que isso não ocorra.

  • mês depois...
Postado

Então, descobri qual é o real problema.

Eu vou precisar de uma condicional pra verificar se é segunda, terça ou quarta feira e se sim, que ele rode o script.
Como esse ano a semana começou em uma sexta feira, o computador entende que quinta é o ultimo dia da semana e atrapalha tudo, então o ideal seria essa condicional. Com isso fica tudo perfeito

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!