<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; Копирование нескольких файлов из папки в другую с датой]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=8512</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8512&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Копирование нескольких файлов из папки в другую с датой».]]></description>
		<lastBuildDate>Fri, 26 Jul 2013 22:17:11 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Копирование нескольких файлов из папки в другую с датой]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=74052#p74052</link>
			<description><![CDATA[<p>Доброго времени суток! Помогите пожалуйста решить одну задачу. Есть программа которая создает отчеты в некой папке <strong>&quot;1&quot;</strong> , каждый день в 6 утра появляются 4 файла отчета их нужно скопировать в другую папку по сети ( папка должна быть с датой предыдущего дня такого типа (дата\месяц\год). Например сегодня 27.07.2013 в 6 утра в папке <strong>&quot;1&quot;</strong> появятся 4 файла отчета за 26.07.2013 их нужно скопировать в созданную папку по сети с такой же датой 26.07.2013</p><p>Вот что примерно нашел</p><div class="codebox"><pre><code>chcp 1251
echo off
cls

md \\SERVER-1\Obmen\%date:~6,4%.%date:~3,2%.%date:~0,2%
if not exist \\SERVER-1\Obmen\%date:~6,4%.%date:~3,2%.%date:~0,2% goto error5

xcopy D:\1 \\SERVER-1\Obmen\%date:~6,4%.%date:~3,2%.%date:~0,2% /y /e /z /c /h
goto exit

:exit</code></pre></div><br /><ul><li><p>Таким образом&nbsp; папка создается но с текущей датой (27.07.2013) а нужно на день раньше (26.07.2013)<br />Файлы копируются все подряд</p></li></ul><p>Нужно именно последние созданные 4 файла</p><p>так же нашел вот такой код <a href="http://susl-ik.blogspot.ru/2012/09/bat.html?m=1">отсюда</a></p><div class="codebox"><pre><code>set dir1=[Путь к папке с файлами] set dir2=[Путь к папке для размещения копий] setlocal enabledelayedexpansion set /a num=0 set /a err=0 for /f &quot;tokens=* delims=&quot; %%i in (&#039;dir /b /o:-d /t:W &quot;%dir1%\*.*&quot;&#039;) do ( set /a num+=1 if /i !num! leq [количество копируемых файлов] ( copy &quot;%dir1%\%%i&quot; &quot;%dir2%\&quot; &gt; nul if errorlevel 1 (echo %%i &gt;&gt; errorslog.txt set /a err+=1 ) echo copy file...%%i) else ( echo skip file... %%i ) ) echo COUNT OF ERRORS: %err% pause</code></pre></div><p>Описание кода: В квадратные скобки необходимо подставить реальные значения.<br />Директива setlocal enabledelayedexpansion включает режим отложенного расширения переменных, который позволяет сделать изменения счетчика num видимым внутри цикла (по умолчанию это не так).<br />Команда dir /b /o:-d /t:W &quot;%dir1%\*.*&quot; определяет порядок копирования файлов. В данном случае первым будет самый новый файл. При помощи других ключей команды dir можно задать другие условия.</p><p><strong>Как быть, помогите</strong></p>]]></description>
			<author><![CDATA[null@example.com (sam1ive.gch)]]></author>
			<pubDate>Fri, 26 Jul 2013 22:17:11 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=74052#p74052</guid>
		</item>
	</channel>
</rss>
