<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: Открытие csv файлов по дате и по отрывку в названий]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=15432&amp;type=atom" />
	<updated>2020-06-17T02:51:13Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=15432</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Открытие csv файлов по дате и по отрывку в названий]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140179#p140179" />
			<content type="html"><![CDATA[<p>Я бы сделал чуть более универсально:</p><div class="codebox"><pre><code>
dim ifile
if WScript.Arguments.length = 0 then
	set ifile = WScript.StdIn
else
	with CreateObject(&quot;Scripting.FileSystemObject&quot;)
		set ifile = .OpenTextFile(WScript.Arguments(0))
	end with
end if

dim line
do while not ifile.AtEndOfStream
	line = ifile.ReadLine
	WScript.Echo(line)
loop

ifile.Close
</code></pre></div><p>Кода чуть больше, но и возможностей -- больше.</p><p>-- вызов скрипта с файлом в качестве параметра<br /></p><div class="codebox"><pre><code>cscript VBSCRIPT FILENAME</code></pre></div><p>-- вызов скрипта в конвейере (чтение входного потока STDIN)<br /></p><div class="codebox"><pre><code>type FILENAME | cscript VBSCRIPT</code></pre></div><p>-- вызов скрипта и передача файла на входной поток STDIN<br /></p><div class="codebox"><pre><code>cscript VBSCRIPT &lt; FILENAME</code></pre></div><p>А если не заморачиваться с такими универсальностями, то скрипт можно сильно сократить, просто читая STDIN (мой любимый способ):</p><div class="codebox"><pre><code>
set stdin = WScript.StdIn
do while not stdin.AtEndOfStream
	line = stdin.ReadLine
	WScript.Echo(line)
loop
</code></pre></div><p>И в Вашем случае вызывать его так:</p><div class="codebox"><pre><code>
for /f &quot;tokens=*&quot; %%f in ( &#039;команда получения списка...&#039; ) do (
	cscript //nologo VBSCRIPT &lt; &quot;%%~f&quot;
	goto :EOF
)
</code></pre></div><p>Естественно, что это просто примеры, и в VBS цикле должна выполняться какая-то более полезная чем простой вывод работа.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2020-06-17T02:51:13Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140179#p140179</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Открытие csv файлов по дате и по отрывку в названий]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140176#p140176" />
			<content type="html"><![CDATA[<p>Вероятно, из BAT вызывать VBS.<br />Вот в этом месте<br /></p><div class="codebox"><pre><code>	какая-то команда &quot;%%~f&quot;</code></pre></div><p>&quot;какой-то командой&quot; должен быть скрипт VBS. А в нём, в свою очередь, вместо константных имён файлов использовать WScript.Arguments.</p>]]></content>
			<author>
				<name><![CDATA[Мальчик-гей]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30832</uri>
			</author>
			<updated>2020-06-16T22:36:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140176#p140176</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Открытие csv файлов по дате и по отрывку в названий]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140170#p140170" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Rabi пишет:</cite><blockquote><p>как добавить ваш метод в мой скрипт для чтения csv файлов</p></blockquote></div><p>Ваш скрипт написан на VBS. Мои предложения - на BAT/CMD. Это отдельный скрипт.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2020-06-16T12:59:35Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140170#p140170</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Открытие csv файлов по дате и по отрывку в названий]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140168#p140168" />
			<content type="html"><![CDATA[<p><strong>Rumata</strong> здравствуйте.<br /></p><div class="quotebox"><blockquote><p>Таким образом обе команды в Вашем случае выведут искомый файл в первую позицию списка. Остается получить его -- используйте примерно такую конструкцию:</p></blockquote></div><p> <br />Можете подсказать как добавить ваш метод в мой скрипт для чтения csv файлов.</p><div class="codebox"><pre><code>Sub read()
Dim fso, f, field, MyZf

&#039; Create file object -- Objekt erstellen
Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
SmartTags(&quot;filename2&quot;) = &quot;C:\file\MAG8000_344305H329_2020-04-09 0702.csv&quot;
Set f = fso.OpenTextFile(&quot;C:\file\MAG8000_344305H329_2020-04-09 0702.csv&quot;, 1)


&#039; Read values till end of file -- Werte bis zum Dateiende einlesen
Do While Not f.AtEndOfStream 
	MyZf = f.ReadLine
Loop
field = Split(MyZf, &quot;;&quot;)
	
SmartTags(&quot;tag_1&quot;) = field(0)
SmartTags(&quot;tag_2&quot;) = field(3)
SmartTags(&quot;tag_3&quot;) = field(6)

&#039; Tidy up -- Aufraeumen
fso.Close
Set f = Nothing
Set fso = Nothing

End Sub</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Rabi]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40897</uri>
			</author>
			<updated>2020-06-16T11:07:19Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140168#p140168</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Открытие csv файлов по дате и по отрывку в названий]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140157#p140157" />
			<content type="html"><![CDATA[<p>Есть команда DIR. С помощью ключей можно получить разные списки:<br /></p><div class="quotebox"><blockquote><p>/b - простой список<br />/a-d - только файлы<br />/o-n - сортировать по именам файлов в обратном порядке<br />/o-d /tw - сортировать по дате последнего изменения</p></blockquote></div><p>Примеры испльзования</p><p>1. отображает простой список заданных файлов, отсортированных по именам в обратном порядке<br /></p><div class="codebox"><pre><code>
dir /b /a-d /o-n MAG8000_296305H319_*
</code></pre></div><p>2. отображает простой список заданных файлов, отсортированных по времени последней модификации<br /></p><div class="codebox"><pre><code>
dir /b /a-d /o-d /tw MAG8000_296305H319_*
</code></pre></div><p>Таким образом обе команды в Вашем случае выведут искомый файл в первую позицию списка. Остается получить его -- используйте примерно такую конструкцию:<br /></p><div class="codebox"><pre><code>
for /f &quot;tokens=*&quot; %%f in ( &#039;команда получения списка...&#039; ) do (
	какая-то команда &quot;%%~f&quot;
	goto :EOF
)
</code></pre></div><p>Или в Вашем скрипте добавить несколько операций для доступа к файловой системе с помощью WSH, сортировки списка и получения самого последнего файла.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2020-06-15T06:04:19Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140157#p140157</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Открытие csv файлов по дате и по отрывку в названий]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140156#p140156" />
			<content type="html"><![CDATA[<p>можно одно из двух без разницы</p>]]></content>
			<author>
				<name><![CDATA[Rabi]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40897</uri>
			</author>
			<updated>2020-06-15T03:14:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140156#p140156</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Открытие csv файлов по дате и по отрывку в названий]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140129#p140129" />
			<content type="html"><![CDATA[<p><strong>Rabi</strong>, так по дате в имени файла или по дате-времени последней модификации?!</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2020-06-12T22:49:40Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140129#p140129</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: Открытие csv файлов по дате и по отрывку в названий]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=140078#p140078" />
			<content type="html"><![CDATA[<p>Здравствуйте уважаемые форумчане! Помогите решить следующую проблему есть папка &quot;DataBase&quot; в которую раз в сутки поступают файлы &quot;csv&quot; со следующим названием:<br />- MAG8000_296305H319_2020-02-26<br />- MAG8000_296305H319_2020-02-08<br />Задача состоит в том чтоб считывать актуальные данные с этих файлов т.е. с последней датой сохранения. Скрипт для считывания данных я написал. Вопрос: возможно ли написать скрипт который будет открывать файл по отрывку в названий например &quot;MAG8000_296305H319&quot; и по последней дате сохранения? Если это возможно буду рад подсказке.</p>]]></content>
			<author>
				<name><![CDATA[Rabi]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40897</uri>
			</author>
			<updated>2020-06-09T04:26:25Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=140078#p140078</id>
		</entry>
</feed>
