<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Цикл в резервном копировании]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8117&amp;type=atom" />
	<updated>2013-03-02T20:54:37Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8117</id>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Цикл в резервном копировании]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=69911#p69911" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[vojd]]></name>
			</author>
			<updated>2013-03-02T20:54:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=69911#p69911</id>
		</entry>
</feed>
