2

Может кто-то указать мне верное направление?

Мне нужно запланировать файл bat, который копирует файлы из папки, имя которой меняется ежедневно, и мне нужно скопировать их из вчерашней папки. Т.е. если сегодня 12 февраля 2010 года, мне нужно скопировать файлы из папки 20100211, а завтра мне нужно будет скопировать из папки 20100212.

Есть идеи?

3 ответа3

1

В пакетном файле это почти невозможно, так как вы не можете выбрать формат. Однако, если у вас есть PowerShell на этом компьютере, вы можете использовать Get-Date:

$now = get-date -format yyyyMMddTHHmmss
$fileName = $now + "_something.txt"
Copy-Item $source -Destination $fileName
0

Вот пакетный скрипт, который будет копировать файлы из C:/FromFolder/yyyymmdd в C:/ToFolder (yyyymmdd - вчерашняя дата).

# 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

Скопируйте и сохраните скрипт в файле C:/Script/CopyYesterday.txt. Затем запланируйте выполнение этой команды ежедневно.

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

Вам нужно будет установить biterscripting ( http://www.biterscripting.com ). Это отлично подходит для гибкого управления файлами. Страницы справки для addtime, команды lf и т.д. Находятся на их сайте, или вы также можете сделать "help addtime" и т.д. В битрейскрипте.

0

Достаточно ли будет синхронизировать родительский каталог этих каталогов YYYYMMDD с другим каталогом? Таким образом, вам не придется беспокоиться об изменении имени. Robocopy - отличный инструмент командной строки для зеркалирования одного каталога в другой. Это стало одной из стандартных команд Vista. Если вы все еще используете XP, вы можете получить ее как часть Инструментов Windows Server 2003 Resource Kit. Если вы не хотите, чтобы все в родительском каталоге копировалось, вы можете указать файлы и / или каталоги, которые будут игнорироваться в файле задания Robocopy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .