<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: Скрипт поиска и копирования файлов по маске]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7427&amp;type=atom" />
	<updated>2012-08-10T17:58:49Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7427</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Скрипт поиска и копирования файлов по маске]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=62681#p62681" />
			<content type="html"><![CDATA[<p><strong>Fedor</strong>, спасибо огромное, ровно то что надо!! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[DDK]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28486</uri>
			</author>
			<updated>2012-08-10T17:58:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=62681#p62681</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Скрипт поиска и копирования файлов по маске]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=62679#p62679" />
			<content type="html"><![CDATA[<p>Можно (для командной строки!!!):<br />for /r ?:\ %i in (*.mts) do xcopy &quot;%i&quot; d:\kamera\*.* /Y<br />&quot;%i&quot; - именно так если есть файлы содержащие пробелы в имени, если уверен, что таких не будет, можно&nbsp; просто %i.<br />Только есть риск потерять часть файлов с одинаковыми именами из разных каталогов.</p><p>Совсем убийственный вариант:<br />for /r ?:\ %i in (*.mts) do (xcopy &quot;%i&quot; d:\kamera\*.* /Y)&amp;&amp;(del %i /S /Q)<br />При удачном копировании файла с карты памяти удаляем его, при неудачном копировании файл не удалится, но перезапись файла то же считается удачным исходом копирования!!!<br />Выбирай что больше подходит.</p><p>P.S. если будешь писать cmd (bat) используй %%i</p>]]></content>
			<author>
				<name><![CDATA[Fedor]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28233</uri>
			</author>
			<updated>2012-08-10T17:23:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=62679#p62679</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Скрипт поиска и копирования файлов по маске]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=62648#p62648" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Fedor пишет:</cite><blockquote><p>Для решения описанной задачи возможно хватит командного файла (cmd или bat)<br />копируем файлы с видео: (из всех подкаталогов карты памяти с перезаписью уже скопиованных и созданием структуы папок)<br />&nbsp; &nbsp;xcopy ?:\*.mts D:\kamera\*.* /S /E /C /Y</p></blockquote></div><p>Спасибо! А можно как-то с помощью xcopy сделать так, чтобы все файлы тупо копировались в одну указанную папку? Тобишь, без сохранения оригинальной файловой структуры. Собственно, именно в этом и идея - одним кликом (скриптом) собрать со всех папок файлы и скопировать их в одну папку <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[DDK]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28486</uri>
			</author>
			<updated>2012-08-09T20:01:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=62648#p62648</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Скрипт поиска и копирования файлов по маске]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=62644#p62644" />
			<content type="html"><![CDATA[<p>Для решения описанной задачи возможно хватит командного файла (cmd или bat)<br />копируем файлы с видео: (из всех подкаталогов карты памяти с перезаписью уже скопиованных и созданием структуы папок)<br />&nbsp; &nbsp;xcopy ?:\*.mts D:\kamera\*.* /S /E /C /Y<br />если хочешь очистить карту памяти от данных файлов <br />&nbsp; &nbsp;del ?:\*.mts /S /Q</p><p>Следующим шагом, если есть утилита, конвертации запускаем её.</p>]]></content>
			<author>
				<name><![CDATA[Fedor]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28233</uri>
			</author>
			<updated>2012-08-09T19:29:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=62644#p62644</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Скрипт поиска и копирования файлов по маске]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=62430#p62430" />
			<content type="html"><![CDATA[<p>Вот самый подходящий скрипт, наверное, из той темы... осталось как-то добавить копирование файлов в папку назначение и попутную проверку на наличие файла с таким именем.</p><div class="codebox"><pre><code>Dim fso,mySet,myDir,st
Dim s()
i=0

Dim regEx, Match, Matches, regtxt
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True

mySet=&quot;*.jpg *.gif&quot;

For Each m1 in Split(mySet,&quot; &quot;,-1,1)
    regtxt = regtxt &amp; &quot;\.&quot; &amp; m1 &amp; &quot;$|&quot;
Next
regEx.Pattern = Left(regtxt, Len(regtxt)-1)

myDir=&quot;c:\111&quot;

Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)

Sub ListFolder(curDir)
On Error Resume Next
    For Each f1 in fso.GetFolder(curDir).Files
    If Err.Number = 0 Then
            If regEx.Test(f1) Then
                ReDim Preserve s(i+1)
                s(i) = f1.path
                i=i+1
            End If
    End If
    Next
Err.Clear
    For Each s1 in fso.GetFolder(curDir).SubFolders
        If Err.Number = 0 Then
            ListFolder(s1.path)
        End If
    Next
Err.Clear
On Error Goto 0
End Sub

ListFolder(myDir)

For k=0 To i-1
        MsgBox &quot;Количество файлов: &quot; &amp; i &amp; vbCrLf &amp; st
        st=k+1 &amp; &quot;) &quot; &amp; s(k) &amp; vbCrLf
Next</code></pre></div>]]></content>
			<author>
				<name><![CDATA[DDK]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28486</uri>
			</author>
			<updated>2012-08-06T19:00:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=62430#p62430</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: Скрипт поиска и копирования файлов по маске]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=62429#p62429" />
			<content type="html"><![CDATA[<p>Здравствуйте!</p><p>Помогите написать скрипт! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Есть видеокамера, на её карте памяти в разных папках (по датам) лежат файлы с расширением <strong>*.mts</strong>. Программа копирования файлов с камеры просто идиотская - копирует всю файловую структуру с карты памяти камеры... и сиди потом выковыривай видео-файлы из кучи мусора.</p><p>Идея: написать скрипт, которому надо будет указать расширение файлов и путь до папки на карте памяти, в подпапках которой надо будет искать файлы с этим разрешением и копировать эти файлы в указанную папку, попутно проверяя, нет ли в папке назначения уже файла с таким же именем (может его уже ранее скопировали). </p><p>Нашёл тему, в которой обсуждается почти такая же задача, но там немного не то: <a href="http://forum.script-coding.com/viewtopic.php?id=4060">http://forum.script-coding.com/viewtopic.php?id=4060</a></p><p>В перспективе потом ещё хочу модифицировать скрипт так, чтобы вместо копирования файла он производил конвертирование в другой формат с помощью вспомогательной программы-конвертера.</p><p>Поможите! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[DDK]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=28486</uri>
			</author>
			<updated>2012-08-06T18:42:36Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=62429#p62429</id>
		</entry>
</feed>
