« 「ギア-GEAR-」観てきた! | トップページ | 気分転換中に… »

2016年10月 5日 (水)便利なスクリプト

おはようございます。本日の当番、プログラマーのY.Nです。

本日はVBSのご紹介です。
業務では、メインとなるプログラム開発以外にも、各チームのサポートツールの開発や、自動化処理などいろんなところで、プログラムを書くことがあります。

でも、プログラムって実はすごく環境依存で、このプログラムを動かすには、○○や××を入れないと動かないなど動作させるまでに下準備が必要なものもあったりします。

でも、取り合えずWindowsならそんな下準備はいらないよってプログラムをご紹介します。
それは、Microsoftから提供されているVBS!!
このプログラムはVBによく似た書き方をするので、C++しか知らない人は抵抗があるかもしれませんが、結構便利なので、ぜひ使って見てください。


■行っている処理
”XXX_XXX_000.png”のような素材があった場合、”XXX_XXX”のフォルダを作成しその中に移動します。

-------------------------------------------------
Option Explicit
On Error Resume Next

Dim g_oParam
Dim g_fso

' 引数を取得します
Set g_oParam = WScript.Arguments
' ファイルオブジェクトを生成します。
Set g_fso = CreateObject("Scripting.FileSystemObject")


Dim idx
' 引数をループを使用して取得します。
For idx = 0 To g_oParam.Count - 1
' フォルダ判定
If g_fso.FolderExists(g_oParam(idx)) Then
call CheckFolder(g_oParam(idx))
' ファイル判定
ElseIf g_fso.FileExists(g_oParam(idx)) Then
call CheckFile(g_fso.GetFile(g_oParam(idx)))
End If
Next

' 解放
Set g_oParam = Nothing
Set g_fso = Nothing

' ポップアップでユーザーに通知
Msgbox "処理を終了しました。",vbOKOnly

'============================
' フォルダチェック
'============================
Function CheckFolder(ByVal folder)
Dim file

' ファイルは移動処理を行います。
For Each file In g_fso.GetFolder(folder).files
call CheckFile(file)
Next

' サブフォルダは再帰で処理します。
For Each subFolder In folder.SubFolders
call CheckFolder(subFolder)
Next

End Function

'============================
' ファイルチェック&移動
'============================
Function CheckFile(ByVal file)
Dim pos
Dim folder

' フォルダ名に使用するアンダーバーまでの文字位置を検索します
pos = InstrRev(file.Name, "_", -1, 1)

' アンダーバーがついたファイルかチェック
' 先頭ならフォルダ名に使用できないため、無視します。
If pos > 1 Then
' フォルダ名を作成します。
folder = file.ParentFolder & "\" & Mid(file.Name, 1, pos -1) & "\"

' フォルダの存在チェック
If g_fso.FolderExists(folder) = false Then
' フォルダが存在しない場合は作成します。
g_fso.CreateFolder(folder)
End If
' 指定のフォルダにファイルを移動します。
g_fso.MoveFile g_fso.GetAbsolutePathName(file), folder

End If
End Function
-------------------------------------------------

改版OKですので、学習用にお使いください。

follow us in feedly
result = encodeURIComponent( "http://www.accessgames-blog.com/blog/2016/10/post-6c89.html" );document.write( "result = " , result );&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">

| | コメント (0) | トラックバック (0)

« 「ギア-GEAR-」観てきた! | トップページ | 気分転換中に… »

プログラマー」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 便利なスクリプト:

« 「ギア-GEAR-」観てきた! | トップページ | 気分転換中に… »