複数ファイルのファイル名を変更するVBSを作りましたが、正常に動作しません。
複数のファイルが入ったフォルダをVBSファイルにドラッグアンドドロップすると、
ファイル名が正しく変更される場合と、予期しないファイル名になってしまう場合があります。
フォルダ内のファイル数が多いと、ファイル名が異様に長いものになってしまいます。
どこが悪いのかをご指摘いただければ幸いです。
よろしくお願いいたします。
'ドロップされたファイルの情報を取得
Set arg=WScript.Arguments
'店IDの入力ウィンドウを表示
ShopID = InputBox("店IDを入力してください。","店IDの追加","")
If ShopID = "" Then
WScript.Quit
End If
Set fs=CreateObject("Scripting.FileSystemObject")
For Each item0 In arg
If fs.FileExists(item0) Then
e(item0)
ElseIf fs.FolderExists(item0) Then
r fs.GetFolder(item0)
End If
Next
WScript.Quit
Sub r(f)
For Each f1 In f.Files
e f1
Next
For Each f1 In f.SubFolders
r f1
Next
End Sub
'ファイル名の頭に店IDを付ける
Sub e(FilePth)
NewName = ShopID & "_" & fs.GetFileName(FilePth)
Set src = fs.GetFile(FilePth)
src.Name = NewName
End Sub
No.1ベストアンサー
- 回答日時:
ちょっと気になったので。
はずしてたらごめんなさい。例えば次のようなフォルダ構成をドラッグアンドドロップしたとします。
C:\AAA\BBB\f1.txt
このとき、argには
C:\AAA
C:\AAA\BBB
C:\AAA\BBB\f1.txt
と入るのでしょうか?
もし入るのならf1.txtの名前が期待したものにならにですよね?
先にargに(順番に寄りますが)
arg(0)="C:\AAA\BBB\f1.txt"
arg(1)="C:\AAA\BBB"
arg(2)="C:\AAA"
と入ってたら、
arg(0)でe(FilePath)を呼んでf1.txtの名前が変更されて、
次にarg(1)でr(f)関数が呼ばれて、その下のファイルをサーチしてf1.txtのファイル名がさらに変更されますけど
とてもはずしてそうです・・・・
No.2
- 回答日時:
実際に試していないので、関係のない指摘かもしれませんが、
>For Each f1 In f.Files
> e f1
の部分 f1 は、ファイルオブジェクトであってファイルパスではないので、
e f1.Path
とすべきではないですか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
COPYコマンドで結合すると余計...
-
ファイルの最後に文字列挿入
-
テキストファイルで提出とは?
-
.txtではなく.logの方が良いの...
-
Windowsのバッチファイルを利用...
-
エクセルVBA テキストに出力、...
-
フォルダ階層のあるzipファイル...
-
ハードディスク上書き用大容量...
-
VBSで、テキストファイルに対し...
-
VBAでワークシートを引数として...
-
OpenOffice.org...
-
txtとはWordでなんですか?
-
3つ以上のテキストファイルをコ...
-
UWSCでファイルを開く方法
-
多数のサブディレクトリ内のフ...
-
FDからDドライブへどんどんコピ...
-
テキスト(txt)→ワード(docx)へ...
-
EXCEl/VBAで拡張子なしのファイ...
-
エクセルの各セルの内容をそれ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
.txtではなく.logの方が良いの...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
拡張子を元に戻す
-
テキストファイルで提出とは?
-
ファイルの最後に文字列挿入
-
バッチファイル 複数ファイル...
-
バッチファイルで文字列削除に...
-
renameコマンドについて
-
forfilesで検索したファイルを...
-
accessでSQL文を使ってcsvファ...
-
バッチファイルからVBAに引数を...
-
psqlでエラーログをとりたい
-
UWSCでテキストファイルを開い...
-
cshでファイルサイズ取得
-
MS-DOSのバッチファイルの中で...
-
コマンドプロンプトで指定した...
-
テキストファイルのタブをカン...
おすすめ情報