Сообщение от
Ig-FoX
А если я хочу чтобы просто все файлы (с текущим числом) копировались с этой деректории чтобы ненадо было показывать названия файлов.
Одним словом я не понял эти параметры для чего -
%%d - имя файла
%%dbak - если есть такое имя файла
Так и именно это делает скрипт,копирует файлы из заданной папки с текущей датой ,в конечную папку.
%%d в данном случае будет браться имя файла и копироваться,а если в конечной папке существует файл с таким же именем,то в конце просто добавится bak.
Так что переменную %%d не надо изменять,только если требуется добавить что либо,если файл существует,вместо bak свое.
Ps. Мне нравится powershell,который гораздо функциональнее,чем ограниченные возможности bat.
Хотя по умолчанию присутствует в системе начиная с Windows Server 2008,2008R2 и 7. Скрипты выразительнее и проще.
$dstFolder = "C:\Users\Александр\1\" # Директория куда копируются файлы
$srcFolder = "C:\Users\Александр\" # Директория откуда копируются файлы
$ListFiles = Get-ChildItem $dstFolder | ForEach-Object {$_.name} #Помещаем список файлов,для последующего сравнения
Get-ChildItem $srcFolder -Force | Where-Object {!($_.PsIsContainer) -and $_.lastwritetime.ToShortDateString() -eq (get-date).ToShortDateString() } | `
Foreach-Object {
if ( $ListFiles -contains $_.name) # Проверяем если в конечной директории совпадающий по имени файл.
{
Copy-Item "$srcFolder$_" -Destination "$dstFolder$((get-date).toshortdatestring()).$_" # Если файл имеет тоже имя,то переменовываем его,например: 30.10.2009.1.txt
}
else { Copy-Item "$srcFolder$_" -Destination "$dstFolder" }
}