No.439
0
回数0
優先度0
発生日2016/12/05
仮完了
完了日
期限
タイトルfilelist.vbs
サブタイトル
内容
Option Explicit


'引数を取得
Dim args, arg, argNum
Set args = WScript.Arguments

'引数の数を確認
argNum = args.Count

'引数が1つもなければ
If argNum = 0 Then

'スクリプトを終了
Wscript.Echo _
"このツールの上に対象のファイルをドラック&ドロップして下さい。"
WScript.Quit
End If

'For Each arg In args
arg = args(0)
'Wscript.Echo arg
'Next

Dim FIND_START_FOLDER
'FIND_START_FOLDER = "c:homeendotmp" '探索開始folder
FIND_START_FOLDER = arg

Dim FIND_RESULT_FILE_NAME
FIND_RESULT_FILE_NAME = "d:FIND_RESULT.TXT" '探索結果一覧
Dim FIND_RESULT_FILE_OBJ


Sub Main()

Dim objFSO ' FileSystemObject

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
'refer to http://msdn.microsoft.com/ja-jp/library/ie/cc428044.aspx
'2=書込用としてopen , True=file新規作成 , -1=unicodeで書込
Set FIND_RESULT_FILE_OBJ = objFSO.OpenTextFile(FIND_RESULT_FILE_NAME,2,True,-1)

'フィールド名
FIND_RESULT_FILE_OBJ.Write("#PATH,SIZE(byte),MODIFY DATE,MODIFY DATE AGE,")
FIND_RESULT_FILE_OBJ.Write("ACCESS DATE,ACCESS DATE AGE")
FIND_RESULT_FILE_OBJ.WriteLine("")

FindFolder objFSO.getFolder(FIND_START_FOLDER)

FIND_RESULT_FILE_OBJ.Close

set objFSO = Nothing
End Sub


' フォルダ検索関数
Sub FindFolder(ByVal objParentFolder)

Dim objRE1
Dim objRE2
Dim objFS
Set objRE1 = CreateObject("VBScript.RegExp")
Set objRE2 = CreateObject("VBScript.RegExp")
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
objRE1.Pattern = "IMG_*"
objRE2.Pattern = "P_*"

Dim objFile
Dim resultLine
Dim strMoveFrom
Dim strMoveTo
Dim f

For Each objFile In objParentFolder.Files
strMoveFrom = objFile.ParentFolder & "" & objFile.Name
'Msgbox objFile.Name
If objRE1.Test(objFile.Name) Then
strMoveTo = Replace(objFile.Name,"IMG_","")
strMoveTo = objFile.ParentFolder & "" & strMoveTo
objFS.MoveFile strMoveFrom,strMoveTo
'objFile.DeleteFile strMoveFrom,strMoveTo
ElseIf objRE2.Test(objFile.Name) Then
strMoveTo = Replace(objFile.Name,"P_","")
strMoveTo = objFile.ParentFolder & "" & strMoveTo
objFS.MoveFile strMoveFrom,strMoveTo
'objFile.DeleteFile strMoveFrom,strMoveTo
Else
strMoveTo = objFile
End If

With Err
Select Case .Number
Case 5, 52
MsgBox "ファイル名に使えない文字が指定されたので中断します。"
Exit For
Case 58
MsgBox add_txt & f.Name & " は既に存在するためファイル名を変更できません。"
.Clear
Case 0
'エラーが発生しなかった場合は何もしない
Case Else
MsgBox .Description & .Number
.Clear
End Select
End With

FIND_RESULT_FILE_OBJ.Write(strMoveTo)
'FIND_RESULT_FILE_OBJ.Write(objFile.ParentFolder & "" & objFile.Name & ",")
'FIND_RESULT_FILE_OBJ.Write(objFile.Size & ",") 'byte
'FIND_RESULT_FILE_OBJ.Write(objFile.DateLastModified & ",")
'FIND_RESULT_FILE_OBJ.Write(Fix(Date() - objFile.DateLastModified) & ",")
'FIND_RESULT_FILE_OBJ.Write(objFile.DateLastAccessed & ",")
'FIND_RESULT_FILE_OBJ.Write(Fix(Date() - objFile.DateLastAccessed))
FIND_RESULT_FILE_OBJ.WriteLine("")
Next

Dim objSubFolder ' サブフォルダ
For Each objSubFolder In objParentFolder.SubFolders
FindFolder objSubFolder
Next
'Set objRE1 = Nothing
'Set objRE2 = Nothing

End Sub

Main
msgbox "終了しました。"
区分
ステータス
中区分個人
小区分VBS
発生元
発生元担当
対応
対応2
連絡先
対応者新実
URL
0
大区分todo
0
登録日2016-12-05 08:56:54
最終アクセス日2016-12-05 08:56:54
更新日2016-12-05 16:54:21