- 締切済み
同じファイル名のデータを上書き
このようなツールをご存知の方はいらっしゃらないでしょうか。 (1)ファイルを指定する。 (2)フォルダを指定する (3)(2)を検索して(1)と同じファイル名のものをすべて上書きする。 ご存知の方は教えてくだされば幸いです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- x-1919
- ベストアンサー率52% (91/173)
希望どおりのツールは聞いたことがないのですが、VBScript でなら似たような物は何度も作ったことがあります。 汎用性を持たせるために HTA アプリケーション化してみました。 下記ソースをテキストファイルとして保存し、拡張子を HTA にしてください。 VBScript ではなく JavaScript や jQuery を使っていますが、単なる遊び心であり、完成度については全く自身がありませんが。 <!DOCTYPE html> <html> <head> <title>ファイル上書き</title> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.0.min.js"></script> <script type="text/javascript"> window.resizeTo(750, 500); // フォルダーのパスを選択 function SetRootDir() { var shell = new ActiveXObject("Shell.Application"); var fld = shell.BrowseForFolder(0, "フォルダー選択", 1); if (fld == null) { return; } $("#rootDir").val(fld.self.path); } // ジョブ実行 function ExecuteJob() { var targetFilePath = $("#targetFile").val(); var rootDirPath = $("#rootDir").val(); $("#log").html(""); $("#log").append("-------------------------------<br/>"); // 指定されたファイルとフォルダーが存在していれば処理を開始する var fso = new ActiveXObject("Scripting.FilesystemObject"); if (fso.FileExists(targetFilePath) && fso.FolderExists(rootDirPath)) { ReplaceFiles(rootDirPath, targetFilePath); } $("#log").append("-------------------------------<br/>"); } // aRootDir : ディレクトリのパス // aTargetFile : コピー元ファイルのパス function ReplaceFiles(aRootDir, aTargetFile) { var fso = new ActiveXObject("Scripting.FileSystemObject"); // フォルダーを掘る var subFlds = new Enumerator(fso.GetFolder(aRootDir).SubFolders); for (; !subFlds.atEnd() ; subFlds.moveNext()) { var subFld = subFlds.item(); ReplaceFiles(subFld.path, aTargetFile); } // ファイルを掘る var fls = new Enumerator(fso.GetFolder(aRootDir).Files); for (; !fls.atEnd() ; fls.moveNext()) { // 取り出したファイルがコピー元ファイルと同じ名前ならファイルを置換し、 // 本文の #log div に結果を記録する if (fls.item().name.toLowerCase() == fso.GetFileName(aTargetFile).toLowerCase()) { fso.CopyFile(aTargetFile, fls.item().path, true); $("#log").append(fls.item().path + "<br />"); } } } </script> </head> <body> <div> ファイル名 : <input type="file" id="targetFile" value="" style="width: 400px;" /> <br /> 対象フォルダー : <input type="text" id="rootDir" value="" style="width: 400px;" /> <input type="button" id="dirSetButton" value="フォルダー選択" onclick="SetRootDir()" /> <br /><br /> <input type="button" id="executeButton" value="上書き実行" onclick="ExecuteJob()" /> </div> <!-- 結果をここに出力する --> <div id="log"> </div> </body> </html>