Renomeie o arquivo csv removendo a data

0

Eu preciso renomear um arquivo csv e remover a data:

eu tenho file_20170101.csv (A data mudará todos os dias) e eu preciso apenas manter arquivo.csv

Como posso fazer isso como um arquivo bat a fim de executá-lo todos os dias (do gerenciador de tarefas do Windows).

Felicidades Antonio

Antonio Caeiro
fonte
Então você quer sobrescrever o arquivo .csv do dia anterior sem um backup? Vejo For %%A in (file_*.csv) do for /f "delims=_" %%B in (%%A) Do Echo New name "%%B%%~xA"
LotPings

Respostas:

0

A solução mais simples via linha de comando deve ser:

ren file_*.csv file.csv

Cuidado: Isso renomeará qualquer arquivo que corresponda ao padrão, gerando conflitos se dois ou mais arquivos estiverem presentes. O comando será executado, renomeando o primeiro arquivo correspondente.

Apenas salve isso como .bat e execute-o no diretório correto. Se você usar o Agendador de Tarefas, adicione o campo iniciar em.

enter image description here

woerndl
fonte
Tks awerno eu tenho arquivo de backup. Quando eu executo diretamente o bacth, ele altera o nome do arquivo para file.csv, no entanto, quando eu configuro o agendador de tarefas, ele não altera o nome do arquivo. Algum palpite?
Antonio Caeiro
Provavelmente porque o agendador de tarefas não conhece o diretório em que deve executar o comando. Adicione o caminho completo ao comando ou adicione o campo "Iniciar em" do agendador.
woerndl
Caminho completo é ok. é a outra maneira de fazer isso? vbs? tks
Antonio Caeiro
Solução mais simples: Salve o comando como na minha resposta e no campo 'Start in' com o caminho correto.
woerndl
@AntonioCaeiro funcionou?
woerndl
0

Nenhum backup extra. Simplesmente mude a linha CD /D ... para se adequar ao seu ambiente. Espero que o caminho não esteja disponível apenas por meio de um mapeamento que a conta agendada não conhece.

@Echo off
CD /D "X:\path\to\folder\"
For %%A in (file_*.csv
  ) do For /F "delims=_" %%B in ("%%A"
    ) Do Echo Move /Y  "%%~fA" "%%~nB%%~xA"

Se você executar localmente o lote, verá os comandos que serão executados depois que você remover o eco na última linha.

LotPings
fonte