<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>digital matter &#187; VBScript</title>
	<atom:link href="http://blog.loadlimits.info/tag/vbscript/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.loadlimits.info</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 06 Feb 2012 13:27:58 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>WSH用の便利関数</title>
		<link>http://blog.loadlimits.info/2010/06/wsh%e7%94%a8%e3%81%ae%e4%be%bf%e5%88%a9%e9%96%a2%e6%95%b0/</link>
		<comments>http://blog.loadlimits.info/2010/06/wsh%e7%94%a8%e3%81%ae%e4%be%bf%e5%88%a9%e9%96%a2%e6%95%b0/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 07:51:34 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[VBScript]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/06/wsh%e7%94%a8%e3%81%ae%e4%be%bf%e5%88%a9%e9%96%a2%e6%95%b0/</guid>
		<description><![CDATA[整理のために古いディスクを漁っていたら、汎用的に使えそうなWSH(VBScript)の関数群が出てきたのでメモ。 機能はファイルコピー、テンポラリディレクトリの取得、ファイルリストの取得、テキストファイルの中身を配列に読み込む、ファイルとディレクトリの存在確認、正規表現のマッチ。当時のことはよく覚えていないけど、とりあえずPHPライクに便利関数が欲しかったんだと思います。 Function FileCopy(src,dst,overwrite) Dim objFS, objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") Set objFS = WScript.CreateObject("Scripting.FileSystemObject") objFS.CopyFile src,dst,overwrite End Function Function GetTemporaryDirectory Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") GetTemporaryDirectory = objWshShell.ExpandEnvironmentStrings("%TEMP%") End Function Function GetFileList(dir, reg) Dim objFS, objFolder Dim fileCol,tmpFile,fileNames Dim i Set objFS = WScript.CreateObject("Scripting.FileSystemObject") Set objFolder = objFS.GetFolder(dir) Set fileCol = objFolder.Files fileNames [...]]]></description>
			<content:encoded><![CDATA[<p>整理のために古いディスクを漁っていたら、汎用的に使えそうなWSH(VBScript)の関数群が出てきたのでメモ。</p>
<p>機能はファイルコピー、テンポラリディレクトリの取得、ファイルリストの取得、テキストファイルの中身を配列に読み込む、ファイルとディレクトリの存在確認、正規表現のマッチ。当時のことはよく覚えていないけど、とりあえずPHPライクに便利関数が欲しかったんだと思います。</p>
<p>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>Function FileCopy(src,dst,overwrite)

	Dim objFS, objWshShell
	Set objWshShell = WScript.CreateObject("WScript.Shell")
	Set objFS = WScript.CreateObject("Scripting.FileSystemObject")

	objFS.CopyFile src,dst,overwrite

End Function

Function GetTemporaryDirectory

	Dim objWshShell
	Set objWshShell = WScript.CreateObject("WScript.Shell")

	GetTemporaryDirectory = objWshShell.ExpandEnvironmentStrings("%TEMP%")

End Function

Function GetFileList(dir, reg)

	Dim objFS, objFolder
	Dim fileCol,tmpFile,fileNames
	Dim i
	Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
	Set objFolder = objFS.GetFolder(dir)
	Set fileCol = objFolder.Files

	fileNames = Array(1)
	i = 0
	For Each tmpFile in fileCol
		If RegMatch(reg, tmpFile.name, False) Then
			fileNames(i) = tmpFile.name
			i = i + 1
			Redim Preserve fileNames(i)
		End If
	Next

	GetFileList = fileNames

End Function

Function FileReadArray(filename)

	Const ForReading = 1, ForWriting = 2

	Dim objFS, objFileStream
	Dim lines
	Dim i
	Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
	Set objFileStream = objFS.OpenTextFile(filename, ForReading)

	lines = Array(1)
	i = 0
	Do While objFileStream.AtEndOfStream &lt;&gt; True
		lines(i) = objFileStream.ReadLine
		i = i + 1
		Redim Preserve lines(i)
	Loop

	FileReadArray = lines

End Function

Function FileExists(filepath)

	Dim objFS
	Set objFS = WScript.CreateObject("Scripting.FileSystemObject")

	FileExists = objFS.FileExists(filepath)

End Function

Function DirectoryExists(dir)

	Dim objFS
	Set objFS = WScript.CreateObject("Scripting.FileSystemObject")

	DirectoryExists = objFS.FolderExists(dir)

End Function

Function SetRegistry(strName, anyValue ,strType)

	Dim objWshShell
	Set objWshShell = WScript.CreateObject("WScript.Shell")

	objWshShell.RegWrite strName, anyValue, strType

End Function

Function RegMatch(pattern, string, ignoreCase)

	Dim regEx, Matches
	Set regEx = New RegExp
	regEx.Pattern = pattern
	regEx.IgnoreCase = ignoreCase
	regEx.Global = True
	Set Matches = regEx.Execute(string)

	If Matches.Count = 0 Then
		RegMatch = False
	Else
		RegMatch = True
	End If

End Function
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/06/wsh%e7%94%a8%e3%81%ae%e4%be%bf%e5%88%a9%e9%96%a2%e6%95%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

