<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: Обработка архивов по дате создания]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7803</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7803&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Обработка архивов по дате создания».]]></description>
		<lastBuildDate>Fri, 25 Jan 2013 12:34:59 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: Обработка архивов по дате создания]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=68842#p68842</link>
			<description><![CDATA[<p><span style="color: Green"><strong>fdv-220v-sever</strong>, не надо дублировать посты, тем более в не подходящих по смыслу темах.</span></p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 25 Jan 2013 12:34:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=68842#p68842</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Обработка архивов по дате создания]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=68839#p68839</link>
			<description><![CDATA[<p>у меня такое задание:сделать bat-файл, чтобы при его выполнении архив из одной папки(основной) делал резервная копю..например c:\DB\f.rar в с:\DB\f1.1.01.13.rar<br />Каждый раз копирование происходило c новой датой(допустим один день - c:\DB\f1.01.13.ra, второй - c:\DB\f2.01.13.rar, третий - c:\DB\f3.01.13.rar и тд..)<br />то есть резервное копирование архива за каждый день<br />может у кого-то есть готовый такой батник! я не особо в этом разбираюсь, но преподаватель дал такое задание..<br />кто-то может помочь?</p>]]></description>
			<author><![CDATA[null@example.com (fdv-220v-sever)]]></author>
			<pubDate>Fri, 25 Jan 2013 12:21:28 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=68839#p68839</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Обработка архивов по дате создания]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=66035#p66035</link>
			<description><![CDATA[<p>Спасибо огромное за ответы. Rumata - точно пригодится.<br />Но сейчас мне нужно помочь найти ошибку вот здесь:</p><p>FOR /F &quot;tokens=1-6,* delims=.: &quot; %%A in (%temp%\files.lst) do (</p><p>)<br />в теле цикла почему-то не сравниваются расчет текущей даты по юлианскому календарю и даты создания архива также переведенного на юлианский календарь? Я не могу понять почему.<br />%JDN% и %JDN2% рассчитываются правильно, но как только я ставлю расчет %JDN2% в цикл у меня ничего не работает.</p>]]></description>
			<author><![CDATA[null@example.com (Lrv)]]></author>
			<pubDate>Fri, 23 Nov 2012 05:34:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=66035#p66035</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Обработка архивов по дате создания]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=66027#p66027</link>
			<description><![CDATA[<div class="quotebox"><cite>Rom5 пишет:</cite><blockquote><p>выполнить копирование файлов только за указанную дату</p></blockquote></div><p>Это хорошо, когда надо скопировать <strong>любые</strong> файлы. Если же требуется заданные имена файлов (как в задаче), то без конструирования шаблонов не обойтись. </p><p>Почитал<br /></p><div class="codebox"><pre><code>xcopy /?
robocopy /?</code></pre></div><p>Они так не умеют. Если все же надо выбирать определенные файлы по шаблону, то как-то так. Возможно и есть путь проще, но мне он не известен. </p><div class="codebox"><pre><code>@echo off


setlocal enabledelayedexpansion


:: вычисляем компоненты времени 
call :get_time

:: создаем поисковый шаблон
call :create_template

::set timestamp
::set search

:: полезный код: что-то делаем с заданными файлами
dir &quot;%search_tmpl%&quot;

goto :EOF


:: выбираем элементы даты/времени и
:: сохраняем в переменных окружения
:: элементы выравнивается вправо добавлением нулей
:get_time
for /f &quot;tokens=1,2 delims==&quot; %%i in (
    &#039;wmic path win32_localtime get /value ^| findstr /v &quot;^$&quot;&#039;
) do (
    call set timestamp_%%i=%%j
    if not &quot;%%~i&quot; == &quot;Year&quot; (
        set timestamp_%%i=00!timestamp_%%i!
        set timestamp_%%i=!timestamp_%%i:~-2!
rem    ) else (
rem        set timestamp_YearShort=!timestamp_Year:~-2!
rem        set timestamp_Century=!timestamp_Year:~0,2!
    )
)
goto :EOF


:: создаем последовательно 
:: шаблоны для даты и имени файла
:create_template
set &quot;search_date=%timestamp_Year%_%timestamp_Month%_%timestamp_Day%&quot;
set &quot;search_tmpl=Inf#*_*#%search_date%#*.zip&quot;
goto :EOF</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Thu, 22 Nov 2012 17:20:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=66027#p66027</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Обработка архивов по дате создания]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=66024#p66024</link>
			<description><![CDATA[<div class="quotebox"><cite>greg zakharov пишет:</cite><blockquote><p><strong>Lvr</strong>, для чего Вы используете знак собачки в каждой строке, когда можно просто указать в начале <strong>@echo off</strong>, дабы избавиться от эха комманд? <br />....</p></blockquote></div><p>Я такой прием тоже использую, когда эхо у части команд интересует, а у части нет. Правда когда интересующих команд всего 4-е строчки то легче вначале батника выключить, а перед интересующими строками - временно включить.</p>]]></description>
			<author><![CDATA[null@example.com (Rom5)]]></author>
			<pubDate>Thu, 22 Nov 2012 16:35:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=66024#p66024</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Обработка архивов по дате создания]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=66023#p66023</link>
			<description><![CDATA[<div class="codebox"><pre><code>xcopy путь\*.zip [куда] /d:mm-dd-yyyy</code></pre></div><p>чтобы не парсить список для разбира даты файлов можно сразу же выполнить копирование файлов только за указанную дату, только с требуемым в команде представлением день-месяц-год надо на конкретной машине разобраться.</p>]]></description>
			<author><![CDATA[null@example.com (Rom5)]]></author>
			<pubDate>Thu, 22 Nov 2012 16:29:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=66023#p66023</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Обработка архивов по дате создания]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=66013#p66013</link>
			<description><![CDATA[<p><strong>Lvr</strong>, для чего Вы используете знак собачки в каждой строке, когда можно просто указать в начале <strong>@echo off</strong>, дабы избавиться от эха комманд? Это во-первых. Во-вторых, лично мне не понятен разбор даты: </p><div class="quotebox"><cite>Lvr пишет:</cite><blockquote><p>@echo %date%<br />@set day=%date:~0,2%<br />@if %day:~0,1%==0 set day=%day:~1,1%</p></blockquote></div><p>Может все же </p><div class="codebox"><pre><code>@echo off
...
set today=%date:.=%
::в итоге легче парсить дату
set day=%today:~0,2%
set month=%today:~3,2%
set year=%today:~5,4%</code></pre></div><p>Также следует учитывать, что переменая %date% зависит от локали.<br />В-третьих, чтобы копировать архив по дате в заголовке вовсе не обязательно писать сложные конструкции, а следует обратить внимание на регулярные выражения.</p>]]></description>
			<author><![CDATA[null@example.com (greg zakharov)]]></author>
			<pubDate>Thu, 22 Nov 2012 13:52:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=66013#p66013</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Обработка архивов по дате создания]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=66007#p66007</link>
			<description><![CDATA[<p><span style="color: Green"><strong>Lrv</strong>, добавьте префикс «CMD/BAT: » в заголовок темы. Оформите код при помощи <a href="http://forum.script-coding.com/help.php#bbcode">тэга «сode»</a>.</span></p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Thu, 22 Nov 2012 12:24:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=66007#p66007</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: Обработка архивов по дате создания]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=66006#p66006</link>
			<description><![CDATA[<p>Здравствуйте!</p><p>В папке лежат файлы архивов вида Inf#1_496766#2012_11_20#23_09_10.zip их нужно обработать, но для это скопировать по текущей дате только архивы этого дня в отдельную папку.</p><p>Я написала по аналогичным примерам, но в цикле, когда прохожу файлы в каталоге не получается вставить сравнение дат:<br /></p><div class="codebox"><pre><code>@echo on
@cd %1
@cd ?a»?«??
@rem j -- ¬??N???

@echo %date%
@set day=%date:~0,2%
@if %day:~0,1%==0 set day=%day:~1,1%
@set mes=%date:~3,2%
@if %mes:~0,1%==0 set mes=%mes:~1,1%
@set god=%date:~6,4%

:STEP1
@set /a JDN=%day%+((153*(%mes%+(12*((14-%mes%)/12))-3)+2)/5)+(365*(%god%+4800-((14-%mes%)/12)))+((%god%+4800-((14-%mes%)/12))/4)-((%god%+4800-((14-%mes%)/12))/100)+((%god%+4800-((14-%mes%)/12))/400)-32045

set FOLDER=C:\Internet
if exist %temp%\files.lst del %temp%\files.lst
FOR %%A in (%FOLDER%\*.*) do @echo %%~txA &quot;%%A&quot;  &gt;&gt;%temp%\files.lst
FOR /F &quot;tokens=1-6,* delims=.: &quot; %%A in (%temp%\files.lst) do (

@set day2= %%A
@set mes2=%%B
@set god2=%%C

@set /a JDN2=%day2%+((153*(%mes2%+(12*((14-%mes2%)/12))-3)+2)/5)+(365*(%god2%+4800-((14-%mes2%)/12)))+((%god2%+4800-((14-%mes2%)/12))/4)-((%god2%+4800-((14-%mes2%)/12))/100)+((%god2%+4800-((14-%mes2%)/12))/400)-32045

@set /a dif=%JDN%-%JDN2%

@If %dif% EQU 0 (GOTO STEP4) ELSE (GOTO STEP5)

:STEP4
copy %%G  С:\Arhiv\%%A_%%B_%%C_00.%%F 

:STEP5

&quot;C:\Program Files\WinRAR\winrar.exe&quot; x  *.zip *.*
)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Lrv)]]></author>
			<pubDate>Thu, 22 Nov 2012 12:03:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=66006#p66006</guid>
		</item>
	</channel>
</rss>
