<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBA: Перенос файлов с FTP и наоборот]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=8941</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8941&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBA: Перенос файлов с FTP и наоборот».]]></description>
		<lastBuildDate>Tue, 26 Nov 2013 12:49:00 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[VBA: Перенос файлов с FTP и наоборот]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=77565#p77565</link>
			<description><![CDATA[<p>Добрый день!</p><p><strong>Необходимо выполнить :<br />- перенос (не копирование файлов) файлов по маске *.CP c FTP на локальный компьютер.<br />- перенос (не копирование файлов) файлов по маске *.CM с локального компьютера на FTP.</strong></p><p>Есть две папки на FTP - Inbox и Outbox. <br />- В папке Inbox хранятся файлы для обработки на локальной машине - файлы формата *.CP <br />- В папку Outbox возвращается обработанный файл формата *.CM<br />Есть две локальные папки - Inbox1 и Outbox1. <br />- В папку Inbox1 переносятся файлы *.CP из Inbox с FTP<br />- В папку Outbox1, после обработки на локальном компьютере, попадают обработанные файлы в формате *.CM</p><p>Получается такой процесс одного файла:<br />1 путь:<br />FTP - Inbox - 0013.CP<br />Local - Inbox1 - 0013.CP</p><p>Тут происходит обработка и он попадает в Outbox1</p><p>2 путь:<br />Local - Outbox1 - 0013.CM<br />FTP - Outbox - 0013.CM</p><p>Имена файлов неизвестны. Известен лишь формат.</p><p>Сначала была идея, чтоб одной командой mget *.CM получить, потом следующей командой удалить.<br />Но после получения всех файлов, в FTP папку Inbox могут попасть еще парочку файлов, и тогда следующей командой DEL удалятся и еще парочку файлов на обработку.</p><p>Необходимо выполнить :<br />- перенос (не копирование файлов) файлов по маске *.CP c FTP на локальный компьютер.<br />- перенос (не копирование файлов) файлов по маске *.CM с локального компьютера на FTP.</p><p>Был написан сначала код, при котором файлы копировались и выводился лог отчета FTP в файл, дабы по полученным данным вновь совершить вход на ftp и удалить перенесенные файлы. Тут же очищались некоторые строчки в ЛОГ файле.</p><div class="codebox"><pre><code>On Error Resume Next 
dim obj1
dim stroutput

Set objShell = CreateObject(&quot;WScript.Shell&quot;)

strCommand1 = &quot;ftp.exe -s:ftp1.1.txt&quot;

Set OBJ1 = objShell.exec(strCommand1)

strOutput = Replace(OBJ1.StdOut.ReadAll, VbCrLf &amp; &quot;PROMPT&quot;, &quot;&quot;)
strOutput = Replace(strOutput,&quot;Пользователь (10.200.0.182:(none)): Open 10.200.0.182 2121&quot; &amp; VbCrLf &amp; &quot;Интерактивный режим Выкл.&quot; &amp; VbCrLf, &quot;&quot;)

With WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;).CreateTextFile(&quot;c:/scripts/ftp.log&quot;, True)
    .Write strOutput
    .Close
End With
</code></pre></div><p>Файл ftp1.1.txt выглядит так:</p><div class="codebox"><pre><code>Open 10.200.0.182 2121
LOGIN
PASSWORD
PROMPT
cd /inbox
ls
lcd c:/scripts/inbox1
mget *.CRS 
cd /outbox
ls
mput c:/scripts/outbox1/*.CER
disconnect
quit</code></pre></div><p>Прошу помочь.<br />Может как то через БАТник это можно сделать быстрее?</p>]]></description>
			<author><![CDATA[null@example.com (batman911)]]></author>
			<pubDate>Tue, 26 Nov 2013 12:49:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=77565#p77565</guid>
		</item>
	</channel>
</rss>
