Script para criar pastas em vários diretórios usando a data YYYYMMDD como o nome da pasta

6

No trabalho, todas as manhãs, tenho que criar várias pastas de arquivos (usando um formato YYYYMMDD date como o nome da pasta do arquivo) em diretórios diferentes em toda a nossa rede para vários departamentos. Este é um verdadeiro problema e desperdício de tempo, e gostaria de automatizar o processo. Então minha pergunta é:

Alguém sabe como posso escrever um script que usa a data atual do sistema em YYYYMMDD format e cria várias pastas em diferentes diretórios de rede com cada pasta nomeada como a data em YYYYMMDD format?

Agradecemos antecipadamente por suas respostas.

    
por Excellll 11.09.2009 / 03:35

3 respostas

9

Crie um arquivo em lote com esta aparência:

@echo off
for /F "tokens=2-4 delims=/ " %%i in ('date /t') do set yyyymmdd=%%k%%j%%i
echo Date: %yyyymmdd%

mkdir \server1\share1\subdir1\%yyyymmdd%
mkdir \server1\share2\subdir2\%yyyymmdd%
mkdir \server2\share3\subdir3\%yyyymmdd%
...

Aviso : o formato da data ( yyyymmdd = %% k %% j %% i ) depende das configurações regionais. Como eu uso o formato de data em francês (dd / mm / aaaa), tenho que usar " %% k %% j %% " como formato (%% i = dia, %% j = mês, %% j = ano).

Se suas configurações regionais estiverem definidas para o estilo US (mm / dd / yyyy), você deverá usar " %% k %% i %% j " (%% i = mês, %% j = dia, %% j = ano).

Se você quiser incluir o horário também, use:

@echo off
for /F "tokens=2-4 delims=/ " %%i in ('date /t') do set yyyymmdd=%%k%%j%%i
echo Date: %yyyymmdd%
for /F "tokens=1-3 delims=: " %%i in ('echo %time%') do set hhmmss=%%i%%j%%k
echo Time: %hhmmss%

mkdir \server1\share1\subdir1\%yyyymmdd%%hhmmss%

A data é armazenada na variável %yyyymmdd% , a hora em %hhmmss% . A mesma observação acima para a data, não aplicável para o horário.

Você pode usar um separador entre a data e a hora: %yyyymmdd%_%hhmmss% , por exemplo.

    
por 11.09.2009 / 07:29
0

Outra maneira, mais feia mas muito mais flexível, é gerar um arquivo de lote separado para cada diretório que precisa ser criado, que (a) cria o diretório e (b) renomeia o próximo arquivo de lote que precisa ser executado para um nome comum previamente selecionado. Você acabou de executar um arquivo de lote com esse nome comum todos os dias

    
por 11.09.2009 / 10:10
0

Experimente estas opções:

set name=%date%
set name2=%name:~6,4%-%name:~3,2%-%name:~0,2%
set tm=%time%
set name3=%tm:~0,2%-%tm:~3,2%
set finname=%name2%_%name3%
mkdir \Server\Share1\Subfolder1\%finname%
    
por 13.05.2014 / 15:06