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