Arquivo em lote para criar arquivos de acordo com os dias em um mês

4

Atualizar

Isso não está funcionando no meu pc do escritório. Quando eu especifico o dia do mês atual como apenas 2. Este é um dado que ele lança: -

How many Days this month: 2 The Month is (Blank) The Day is (Blank) The Year is (Blank) the Month is 2 days long C:\Documents and Settings\Desktop\hi\act--.xls C:\Documents and Settings\Desktop\hi\act--.xls C:\Documents and Settings\Desktop\hi\act\Master File.xls 1 file(s) copied. C:\Documents and Settings\Desktop\hi\act--.xls C:\Documents and Settings\Desktop\hi\act-Mar-2012.xls C:\Documents and Settings\Desktop\hi\act--.xls C:\Documents and Settings\Desktop\hi\act\Master File.xls 1 file(s) copied. C:\Documents and Settings\Desktop\hi\act--.xls C:\Documents and Settings\Desktop\hi\act-Mar-2012.xls C:\Documents and Settings\Desktop\hi\act\Master File.xls 1 file(s) copied

.

Pergunta original abaixo

Existe um arquivo do excel para cada dia do mês. Eu preciso criar o arquivo do Excel para cada dia, de acordo com a data.

Por exemplo: há 31 dias no mês de janeiro, portanto, os arquivos do Excel na pasta de cada mês serão

01-01-12.xls
02-01-12.xls
03-01-12.xls
...
31-01-12.xls

É possível?

Eu tentei isso em um arquivo .bat , mas não sei como construir o loop:

@For /F "tokens=1,2,3 delims=/" %%A in ('Date /t') do @( 
Set Day=%%A
Set Month=%%B
Set Year=%%C
Set All=%%A%%B%%C
)

@For %%a in ("*.xls") do copy %%a "import\%All%.xls"
    
por Uday 02.03.2012 / 11:48

2 respostas

3

@echo off
set /P max=How many Days this month:  

for /f "tokens=1-3 delims=- " %%a in ('date /T') do @(
    set y=%%c
    set m=%%b
    set d=%%a

)

echo The Month is %m%
echo The Day is %d%
echo The Year is %y%
echo the Month is %max% days long
set d=01
Set /a max=%max%+1

:loop

SET adate=%d%-%m%-%y%

if not exist "C:\Documents and Settings\NGLD7640\Desktop\hi\act\%adate%.xls" copy "C:\Documents and Settings\NGLD7640\Desktop\hi\act\Master File.xls" "C:\Documents and Settings\NGLD7640\Desktop\hi\act\%adate%.xls"

set /a d=%d%+1

if not %d%==%Max% goto loop

Código ajustado e personalizado com base em esta discussão com @ barlop .

    
por 02.03.2012 / 16:46
0

Aqui está o oneliner que criará o arquivo de hoje.

echo "" > { echo (gettime()+".xls") }

Isso está no biterscripting. Coloque isso em um arquivo x.txt, depois agende esse comando para ser executado todos os dias através do agendador de tarefas.

C:/biterscripting/biterscripting.exe x.txt
    
por 20.03.2012 / 17:13