• vbs

    vbsでサブフォルダ内の拡張子のないファイルに拡張子(*.txt)を付ける

    vbsでフォルダ、サブフォルダ内の拡張子のないファイルに拡張子(*.txt)をつける
    こつは、右から4番目の1文字、右から5番目の1文字がピリオドかどうかを判断。
    ピリオドではない場合、拡張子.txtをつける。
    (拡張子が、3桁、4桁限定です。フォルダの中に、それ以外の桁の拡張子がある場合は、
    ロジックを追加する必要があります。)

    
    Option Explicit
    
    ' 拡張子txtを付加するパス
    Dim fileListPath
    fileListPath = InputBox("フォルダを入力してください。","入力ダイアログ")
    
    ' ファイルシステムオブジェクトの作成
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' ファイル一覧の取得
    Call GetFileList(fso.GetFolder(fileListPath))
    
    ' ファイルシステムオブジェクトの破棄
    Set fso = Nothing
    
    ' 処理終了
    msgbox "終了"
    WScript.Quit
    
    ' ファイル一覧の取得関数
    Function GetFileList(Byval targetPath)
            Dim folder, file,pri1,pri2,pri3,pri4
    
            ' フォルダが存在する場合は、そのフォルダ配下を探索する
            For Each folder In targetPath.SubFolders
                GetFileList(folder)
            Next
    
            ' 拡張子がない場合は".txt"を付加
            For Each file In targetPath.files
                    pri1 = right(file,4)
                    pri2 = left(pri1,1)
                    pri3 = right(file,5)
                    pri4 = left(pri3,1)
                    if pri2 <> "." and  pri4 <> "."  then
                        fso.MoveFile file,file &  ".txt" 
                    end if
            Next
    End Function