• ベストアンサー

ディレクトリおよびファイルを作成する方法について(MS-DOSバッチ、vbs等)

Windows Server 2003 についての質問です。 もしご存知でしたら、ヒントだけでもご教示願えますでしょうか。 目的  ・あるツールの評価をするため、多数のディレクトリ   とファイルを作成する必要があります。   これを手動で実行することは時間的に無理があるため、   MS-DOSによるバッチやvbs等スクリプトによる自動化を   したいと思っております。 やりたいこと  ・例えば、下記のような階層構造でフォルダおよびファイルを   作成するバッチを作成したいです。   c:\フォルダ1\フォルダ2\フォルダ3\フォルダ4\フォルダ5\フォルダ6 各階層のフォルダ配下にもサブフォルダとファイルを多数存在させます。   ファイルサイズは固定です。   フォルダ、ファイルの名前は単純なもので構いませんが、   番号を振りたいです。   方法としては、まずは元になるファイルを作成しておき、   あとはforコマンドでディレクトリを作成してファイルを   コピーしていけば良いと思っておりますが、実際に   どのようにMS-DOSバッチ化(もしくはvbsスクリプト化)   すれば良いか不明です。 お手数ですが、どうぞご教示のほど宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

サンプルをVBScript で作ってみました。 適当に、修正してください。 ネズミ算的にフォルダとファイルが作成されるので注意して下さい。 (結構な時間と容量が必要です) ---------------------------------------------------------------- 'フォルダを再帰的に作成し、ファイルのコピーを作る Dim fso Dim orgFileName, orgFile Dim FolderN, FileN Dim DefaultFolderName, DefaultFileName Dim LevelMax orgFileName="org.txt" 'コピー元ファイル名の設定 FolderN = 5 '1つのフォルダが保持するサブフォルダ数 FileN = 7 '1つのフォルダが保持するファイル数 DefaultFolderName = "folder" '既定のフォルダ名 DefaultFileName = "file" '既定のファイル名 LevelMax = 6 '作成するフォルダの深さ Set fso = WScript.CreateObject("Scripting.FileSystemObject") Set orgFile = fso.GetFile(orgFileName) Call mkdirR(0, ".") WScript.Echo "終了しました" Sub mkdirR (level, folder) Dim subFolderName Dim i, j subFolderName = folder & "\" & DefaultFolderName & level If level = 0 Then fso.CreateFolder(subFolderName) 'ルートフォルダは1つだけ作る Call mkdirR(level + 1, subFolderName) ElseIf level > LevelMax Then '深さがMax を越えたらヤメ Exit Sub Else For i=1 to FolderN fso.CreateFolder(subFolderName & "_" & i) For j=1 to FileN orgFile.Copy(subFolderName & "_" & i & "\" & DefaultFileName & j & ".dat") Next Call mkdirR(level + 1, subFolderName & "_" & i) Next End If End Sub

nao-k
質問者

お礼

ご回答、ありがとうございます。 お礼の書き込み、遅くなり申し訳ございません。

その他の回答 (2)

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.3

訂正(No.2) command.com/c cp c:\dat\aaa001\ command.com/c cp c:\dat\aaa002\ ↓ command.com/c cp c:\dat\aaa001 command.com/c cp c:\dat\aaa002

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.2

MS-DOSバッチで... cp.bat mkdir %1 copy hoge.dat %1\hoge.dat mkdat.bat command.com/c cp c:\dat\aaa001\ command.com/c cp c:\dat\aaa001\bbb001 command.com/c cp c:\dat\aaa001\bbb001\ccc001 command.com/c cp c:\dat\aaa001\bbb001\ccc001\ddd001 ・ ・ ・ command.com/c cp c:\dat\aaa002\ command.com/c cp c:\dat\aaa002\bbb001 command.com/c cp c:\dat\aaa002\bbb001\ccc001 command.com/c cp c:\dat\aaa002\bbb001\ccc001\ddd001 ・ ・ ・ 以下、テキストはコピー・ペーストで作るか、プログラムで作成

nao-k
質問者

お礼

アドバイス、ありがとうございます。 お礼の書き込み、遅くなり申し訳ございません。

関連するQ&A