スクリーンショットを撮っているとフォルダにファイルが貯まりすぎて整理が難しくなってしまいます。

今年だけで既に1万を超えていました…(笑)
そこで整理をする為にいくつかスクリプトを作ってみました。スクリプトはVBSで作っています。スクリプトをコピペしてもらえれば使えると思います。
写真が好きで貯まりってしまったファイルの整理にも良いかもしれません。
VBScriptのについて
使い方
- VBScriptは下記の物をメモ帳等に貼り付けて、ファイル名を「~.vbs」にしてもらえれば使えます。ただし、メモ帳の場合、標準の「文字コード」が "UTF-8" になっていると思いますので、ファイル保存時に "ANSI" に変更してくださいね。

- 作成した VBScript にファイルをドラッグ&ドロップすればそれぞれのスクリプトが動きます。
- 「右クリック」-「送る」で利用できるようにもできます。
「ファイル名を指定して実行」で 「shell:sendto」と入力し [OK] を選んで表示されたフォルダーに作成した VBScript をコピーしてください。
- イメージ
[test1.jpg][test1.jpg]を選択し、「選択したファイルを更新月毎のフォルダへ移動」
↓ 201908のフォルダーへ移動されました。

注意事項
- スクリプトを利用して、問題等発生しても責任は取れないのでご了承ください。
選択したファイルを[年月日時分秒]のフォルダへ移動(VBS)
概略
スクリプト
Option Explicit
On Error Resume Next
Dim strErrorMsg ' エラーメッセージ
Dim objFSO ' FileSystemObject
Dim strSrcFolder ' ソースフォルダー名
Dim strDstFolder ' 移動先フォルダー名
Dim i ' カウンター
strErrorMsg = ""
' 移動先フォルダー名(yyyyMMddHHmmss)
strDstFolder = Replace(Replace(Replace(Now(),"/",""),":","")," ","") &"\"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
For i = 0 To Wscript.Arguments.Count -1
' 移動先フォルダを作成する
strSrcFolder = objFSO.GetParentFolderName(WScript.Arguments(i)) & "\" & strDstFolder
If objFSO.FolderExists(strSrcFolder) = False Then
objFSO.CreateFolder(strSrcFolder)
End If
' ファイルの移動する
objFSO.MoveFile WScript.Arguments(i), strSrcFolder
' ファイルの移動に失敗したファイルの記録する
If Err.Number <> 0 Then
If strErrorMsg <> "" Then
strErrorMsg = strErrorMsg & vbCrLf
End If
strErrorMsg = strErrorMsg & WScript.Arguments(i)
End If
Next
Else
' ファイル操作に失敗した場合の記録する
strErrorMsg = "ファイル操作に失敗しました。"
End If
' エラーがあった場合、メッセージを表示する
If strErrorMsg <> "" Then
MsgBox "以下のファイルの移動に失敗しました。" & vbCrLf & strErrorMsg _
, vbExclamation, "エラー"
End If
Set objFSO = Nothing
選択したファイルを更新月毎のフォルダへ移動(VBS)
概略
スクリプト
Option Explicit
On Error Resume Next
Dim strErrorMsg ' エラーメッセージ
Dim objFSO ' FileSystemObject
Dim strSrcFolder ' ソースフォルダー名
Dim strDstFolder ' 移動先フォルダー名
Dim i ' カウンター
strErrorMsg = ""
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
For i = 0 To Wscript.Arguments.Count -1
' 移動先フォルダー名(yyyyMM)
strDstFolder = Replace(Left(objFSO.GetFile(WScript.Arguments(i)).DateLastModified,7),"/","") & "\"
' 移動先フォルダを作成する
strSrcFolder = objFSO.GetParentFolderName(WScript.Arguments(i)) & "\" & strDstFolder
If objFSO.FolderExists(strSrcFolder) = False Then
objFSO.CreateFolder(strSrcFolder)
End If
' ファイルの移動する
objFSO.MoveFile WScript.Arguments(i), strSrcFolder
' ファイルの移動に失敗したファイルの記録する
If Err.Number <> 0 Then
If strErrorMsg <> "" Then
strErrorMsg = strErrorMsg & vbCrLf
End If
strErrorMsg = strErrorMsg & WScript.Arguments(i)
End If
Next
Else
' ファイル操作に失敗した場合の記録する
strErrorMsg = "ファイル操作に失敗しました。"
End If
' エラーがあった場合、メッセージを表示する
If strErrorMsg <> "" Then
MsgBox "以下のファイルの移動に失敗しました。" & vbCrLf & strErrorMsg _
, vbExclamation, "エラー"
End If
Set objFSO = Nothing
選択したファイルを更新日毎のフォルダへ移動(VBS)
概略
スクリプト
Option Explicit
On Error Resume Next
Dim strErrorMsg ' エラーメッセージ
Dim objFSO ' FileSystemObject
Dim strSrcFolder ' ソースフォルダー名
Dim strDstFolder ' 移動先フォルダー名
Dim i ' カウンター
strErrorMsg = ""
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
For i = 0 To Wscript.Arguments.Count -1
' 移動先フォルダー名(yyyyMMdd)
strDstFolder = Replace(Left(objFSO.GetFile(WScript.Arguments(i)).DateLastModified,10),"/","") & "\"
' 移動先フォルダを作成する
strSrcFolder = objFSO.GetParentFolderName(WScript.Arguments(i)) & "\" & strDstFolder
If objFSO.FolderExists(strSrcFolder) = False Then
objFSO.CreateFolder(strSrcFolder)
End If
' ファイルの移動する
objFSO.MoveFile WScript.Arguments(i), strSrcFolder
' ファイルの移動に失敗したファイルの記録する
If Err.Number <> 0 Then
If strErrorMsg <> "" Then
strErrorMsg = strErrorMsg & vbCrLf
End If
strErrorMsg = strErrorMsg & WScript.Arguments(i)
End If
Next
Else
' ファイル操作に失敗した場合の記録する
strErrorMsg = "ファイル操作に失敗しました。"
End If
' エラーがあった場合、メッセージを表示する
If strErrorMsg <> "" Then
MsgBox "以下のファイルの移動に失敗しました。" & vbCrLf & strErrorMsg _
, vbExclamation, "エラー"
End If
Set objFSO = Nothing
選択したフォルダ内のファイルを更新月毎のフォルダへ移動(VBS)
概略
- ファイル数が多すぎる場合の改善版です。ファイルではなくフォルダー(単一)を指定してください。
- 選択したフォルダ(複数不可)を VBS にドロップすると、[年月]のフォルダーに移動されます。
- [年月]のフォルダーは、ファイルがあるフォルダーに作成されます。
- ファイルの移動に失敗した場合は、失敗したファイルがリスト表示されます。
- 移動先に同一のファイルが存在すると、移動は行われず、失敗として扱われます。
スクリプト
Option Explicit
On Error Resume Next
Dim strErrorMsg ' エラーメッセージ
Dim objFSO ' FileSystemObject
Dim strFileList ' ファイル一覧
Dim strSrcFolder ' ソースフォルダー名
Dim strDstFolder ' 移動先フォルダー名
Dim i ' カウンター
strErrorMsg = ""
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
set strFileList = objFSO.GetFolder(WScript.Arguments(0)).Files
If Err.Number = 0 Then
For Each i in strFileList
' 移動先フォルダー名(yyyyMM)
strDstFolder = Replace(Left(objFSO.GetFile(WScript.Arguments(0) & "\" & i.Name).DateLastModified,7),"/","") & "\"
' 移動先フォルダを作成する
strSrcFolder = WScript.Arguments(0) & "\" & strDstFolder
If objFSO.FolderExists(strSrcFolder) = False Then
objFSO.CreateFolder(strSrcFolder)
End If
' ファイルの移動する
objFSO.MoveFile WScript.Arguments(0) & "\" & i.Name, strSrcFolder
' ファイルの移動に失敗したファイルの記録する
If Err.Number <> 0 Then
If strErrorMsg <> "" Then
strErrorMsg = strErrorMsg & vbCrLf
End If
strErrorMsg = strErrorMsg & WScript.Arguments(i)
End If
Next
Else
' ファイル操作に失敗した場合の記録する
strErrorMsg = "ファイル操作に失敗しました。"
End If
' エラーがあった場合、メッセージを表示する
If strErrorMsg <> "" Then
MsgBox "以下のファイルの移動に失敗しました。" & vbCrLf & strErrorMsg _
, vbExclamation, "エラー"
End If
Set objFSO = Nothing

0 件のコメント:
コメントを投稿