フォルダー中のCSVファイルを規則に沿って一括変換する方法を紹介します。
変換元のCSVファイルを「C:\source」に配置します。
このフォルダー中の拡張子がCSVのファイルを変換します。
変換されたCSVファイルを保存するフォルダーを「C:\target」に作成します。 変換されたCSVファイルが元のファイル名と同じファイル名でこのフォルダーに保存されます。
CSVファイルを変換する設定をnextCSVで作成します。
作成したnextCSVのプロジェクトファイルは、「C:\source\sample.nxc」に保存します。
変換設定については、nextCSVのホームページをご覧ください。
次のVBScriptのコードをファイル(C:\source\exec.vbs)に保存します。
Option Explicit
Dim source, target, exepath, project, fso, shell, cmdline, folder, file
'CSVファイルのあるフォルダー
source = "C:\source\"
'作成したCSVファイルを保存するフォルダー
target = "C:\target\"
'nextCSV2.exeの場所
exepath = "D:\Program Files\nextCSV2\nextCSV2.exe"
'nextCSV2のプロジェクトファイル(.nxcファイル)のパス
project= "C:\source\sample.nxc"
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")
Set folder = fso.GetFolder(source)
For Each file In folder.Files
'ファイルの拡張子がcsvのとき
If LCase(fso.GetExtensionName(file)) = "csv" Then
cmdline = MakeCommandLine(target, exepath, project, file)
WScript.Echo cmdline
shell.Run cmdline, 1, True
End If
Next
Set fso = Nothing
Set shell = Nothing
'nextCSV2用のコマンドラインを作成する
Function MakeCommandLine(target, exepath, project, file)
MakeCommandLine = """" & exepath & """ -a """ & project & """ """ & _
target & file.Name & """ 0 0 ""-f=" & file & """"
End Function
ファイルの構成は次のようになります。
C:\
├source/ 変換元のCSVファイルを配置するフォルダー
│├exec.vbs 変換処理を実行するVBScript
│├~.csv 変換するCSVファイル
│├~.csv 変換するCSVファイル
│├~.csv 変換するCSVファイル
│└sample.nxc 変換規則を設定したnextCSVのプロジェクトファイル
└target/ 変換されたCSVファイルを保存するフォルダー
保存したファイル実行すると、フォルダー中のCSVファイルを順次nextCSVが変換していきます。
■2011年7月29日 追記
フォルダー内のファイルに対してコマンドラインを実行するソフトウェア「DirCommand フォルダー内ファイル一括処理ソフト」を公開しました。
「DirCommand フォルダー内ファイル一括処理ソフト」を使うとVBScriptを使わなくても、上の処理と同じことが簡単にできます。
ぜひお試しください。