ここから本文です

vbsでとあるフォルダにある複数のファイルに対して、 ファイル名の末尾に[元のフ...

lam********さん

2019/2/2710:37:59

vbsでとあるフォルダにある複数のファイルに対して、
ファイル名の末尾に[元のファイル名]AAA_BBBと付け加えるにはどのようにすればよいでしょうか。

閲覧数:
28
回答数:
1

違反報告

ベストアンサーに選ばれた回答

Prometheusさん

2019/2/2720:47:23

これから処理したいフォルダにプログラムを放り込んで、実行してください。

Option Explicit
Dim f, gf, so
Set so = CreateObject("Scripting.FileSystemObject")
Set gf = so.GetFolder(so.GetParentFolderName(WScript.ScriptFullName))
For Each f In gf.Files
If f.Name <> WScript.ScriptName Then
f.Name = so.GetBaseName(f.Name) & "AAA_BBB." & so.GetExtensionName(f.Name)
End If
Next
Set gf = Nothing
Set so = Nothing
MsgBox("Finished!")

簡単な説明です。

Set gf = so.GetFolder(so.GetParentFolderName(WScript.ScriptFullName))

で、プログラムファイル自身の存在するフォルダを取得しています。

For Each f In gf.Files

そのフォルダ内のすべてのファイルを1つずつ処理。

If f.Name <> WScript.ScriptName Then

見つかったファイルのファイル名が、現在実行しているプログラムファイルのファイル名と一致しなかったら(すなわち、実行しているプログラムファイルのファイル名は変更しない)、

f.Name = so.GetBaseName(f.Name) & "AAA_BBB." & so.GetExtensionName(f.Name)

「GetBasezName()」は、ベースネーム、すなわち「abc.txt」→「abc」、「GetExtensionName()」は、拡張子、すなわち「abc.txt」→「txt」です。

ベースネームに「AAA_BBB.」(★★★最後に「.」を忘れないように!★★★)と元々の拡張子を足したもものを、新たなファイル名にしています。

Set gf = Nothing
Set so = Nothing
MsgBox("Finished!")

あとは、終了処理で、最後に「Finished!」と表示しています。

質問した人からのコメント

2019/2/27 23:40:27

素晴らしいコードありがとう御座います。
説明までつけていただいて助かります!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる