動きゃ良い。周辺処理とバッチをキックするWinシェル。拡張子.vbs
'■設定
Dim regExDel
regExDel = "\.mp3|\.MP3|\.flv|\.wmv"
Dim thisFileName
Dim batFileName
Dim listFileName
thisFileName = "songs_file_kick.vbs"
batFileName = "songs_file_setting.bat"
listFileName ="songs_filelist.txt"
Dim objShell
Dim curDir
Set objShell = WScript.CreateObject("WScript.Shell")
curDir = objShell.CurrentDirectory
Dim batFile
Dim listFile
Dim tempFile
Dim tempFile2
batFile = curDir + "\" + batFileName
listFile = curDir + "\" + listFileName
tempFile = curDir + "\songs_filelist_tmp.txt"
tempFile2 = curDir + "\songs_filelist_tmp2.txt"
'■バッチ実行--ファイル名取得
'バッチ処理終了まで待つ
objShell.Run batFile + " " + listFileName,1,true
Set objShell = Nothing
'■拡張子の削除
Set fso = CreateObject("Scripting.FileSystemObject")
Set regEx = New RegExp
Set inFile = fso.OpenTextFile(listFile)
Set outFile = fso.CreateTextFile(tempFile)
regEx.Pattern = regExDel
repStr = ""
Do Until inFile.AtEndOfStream
tempLine = inFile.ReadLine
repLine = regEx.Replace(tempLine, repStr)
repLine2 = regEx.Replace(repLine, repStr)
outFile.WriteLine repLine2
Loop
inFile.Close
outFile.Close
'■ファイル名の削除
Set inFile = fso.OpenTextFile(tempFile)
Set outFile = fso.CreateTextFile(tempFile2)
tempText = inFile.ReadAll
tempText = Replace(tempText, thisFileName + vbCrLf, "")
tempText = Replace(tempText, batFileName + vbCrLf, "")
tempText = Replace(tempText, listFileName + vbCrLf, "")
tempText = Replace(tempText, "songs_filelist_tmp.txt"+vbCrLf, "")
tempText = Replace(tempText, "songs_filelist_tmp2.txt"+vbCrLf, "")
outFile.Write(tempText)
inFile.Close
outFile.Close
'■旧リストファイルを削除
fso.DeleteFile listFile, True
fso.DeleteFile tempFile, True
'■新リストファイルを本ファイルにリネーム
fso.MoveFile tempFile2,listFile
If Err.Number = 0 Then
WScript.Echo "リストを出力しました [" + listFileName + "]"
Else
WScript.Echo "エラー: " & Err.Description
End If
Set fso = Nothing
※関連ページ(キックするバッチファイル)
http://blog.bangboo.com/page_289.html
---------------------------------------------------
■嘘の情報に気をつけろ
カレントディレクトリに取得
vbsファイルの場所でなく、実行プログラム(例:c:\program\listcam)の場所を指す
Set objWshShell = CreateObject("WScript.Shell")
Msbbox objWshShell.CurrentDirectory