Arquivo de morcego que copia arquivos de uma pasta com nome de alteração como AAAAMMDD

2

Alguém pode me apontar na direção certa?

Eu preciso agendar um arquivo bat que copie os arquivos de uma pasta cujo nome muda diariamente e eu preciso copiá-los da pasta de ontem. Ou seja se hoje for 12 de fevereiro de 2010 eu preciso copiar os arquivos da pasta 20100211 e amanhã eu vou precisar copiar da pasta 20100212.

Alguma idéia?

    
por 3498DB 13.02.2010 / 17:54

3 respostas

1

No arquivo em lote, isso é quase impossível, pois você não pode escolher o formato. No entanto, se você tiver o PowerShell nesta máquina, poderá usar o Get-Date:

$now = get-date -format yyyyMMddTHHmmss
$fileName = $now + "_something.txt"
Copy-Item $source -Destination $fileName
    
por 13.02.2010 / 18:27
0

Seria suficiente manter o diretório pai desses diretórios YYYYMMDD sincronizado com outro diretório? Dessa forma, você não precisa se preocupar com as mudanças de nome. O Robocopy é uma ótima ferramenta de linha de comando para espelhar um diretório para outro. Tornou-se um dos comandos padrão do Vista. Se você ainda estiver usando o XP, poderá obtê-lo como parte do Ferramentas do Resource Kit do Windows Server 2003 . Se você não quiser que tudo no diretório pai seja copiado, poderá especificar arquivos e / ou diretórios para ignorar em um arquivo de trabalho de robocopy.

    
por 13.02.2010 / 18:26
0

Aqui está um script em lote que copia os arquivos de C: / FromFolder / yyyymmdd para C: / ToFolder (aaaammdd é a data de ontem).

# Script CopyYesterday.txt
var str yesterday, list, file
set $yesterday = addtime(diff("-1000000"))   # "-1000000" = subtract 1 day, 00 hrs, 00 mins, 00 secs
chex "8]" $yesterday > $yesterday
# We now want to copy files from C:/FromFolder/$yesterday to C:/ToFolder.
lf -n "*" ("C:/FromFolder/"+$yesterday) ($ftype=="f") > $list
while ($list <> "")
do
    lex "1" $list > $file
    system -s "copy /Y" ("\""+$file+"\"") "C:/ToFolder"
done

Copie e salve o script no arquivo C: /Script/CopyYesterday.txt. Em seguida, agende esse comando para ser executado diariamente.

"C:/biterScripting/biterScripting.exe" "C:/Script/CopyYesterday.txt"

Você precisará instalar o biterscripting ( link ). É ótimo para gerenciamento flexível de arquivos. As páginas de ajuda para addtime, lf command etc, estão em seu site ou você também pode fazer "help addtime", etc. em biterscripting.

    
por 15.02.2010 / 17:33

Tags