<?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=8117</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8117&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Цикл в резервном копировании».]]></description>
		<lastBuildDate>Sat, 02 Mar 2013 20:54:37 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[CMD/BAT: Цикл в резервном копировании]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=69911#p69911</link>
			<description><![CDATA[<p>Используя скрипт для резервного копирования в Linux работа в цикле осуществляется быстро и просто:</p><div class="codebox"><pre><code>
!/bin/bash

timestamp=`date &quot;+%Y-%m-%d_%H-%M&quot;`
backupFS=&quot;/folder1 /folder2 /folder3&quot;
backupTO=/mnt/backup
KeepTime=7

if [ -d $backupTO ]; then
   find $backupTO -maxdepth 1 -name \*.tar.gz -mtime +${KeepTime} -exec rm -f &#039;{}&#039; \;
                for i in $backupFS
                do
                j=`expr ${i//\//-}`
                tar -zcvf $backupTO/`hostname`.${timestamp}.${j}.tar.gz $i
                done
fi
</code></pre></div><p>Это маленький кусочек скрипта.</p><p>Пытаюсь сделать нечто подобное в Windows но на мой взгляд это не будет работать так как надо:</p><div class="codebox"><pre><code>
CHCP 1251
set CurrentDate=%date%
set ProgramPath=&quot;C:\Program Files\......&quot;
ser BackupTo=\\backupserver\backup
set Param1=param1

set Base=&quot;Base1 Base2 ... BaseN&quot;

for %%I in (%Base%) do %ProgramPath% %Param1% %Base%%I% %User% %Pass% dump file_%CurrentDate%_.dat
</code></pre></div><p>Это сильно упрощенная версия. Мне интересен запуск именно в цикле, для упрощения скрипта, Сейчас это выглядит как огромный скрипт из множетва повторяющихся строк. Перед каждым запуском программы приходится заново объявлять переменную %Base%, что крайне неудобно и неинформативно.<br />В переменной Base все слова написаны по русски через пробел. Если так сделать нельзя, то можно ли организовать массив, но не объявляя дополнительной переменной в которой необходимо будет указать общее количество переменных.</p><p>И можно ли удалить старые архивы подобно тому как это делается в Linux скрипте через переменную KeepTime. На мой взгляд для такой простой операции получать текущую дату, затем вычислять дату которая была несколько дней назад и затем удалять эти файлы неправильно.</p>]]></description>
			<author><![CDATA[null@example.com (vojd)]]></author>
			<pubDate>Sat, 02 Mar 2013 20:54:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=69911#p69911</guid>
		</item>
	</channel>
</rss>
