• ベストアンサー

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

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

  • nao-k
  • お礼率92% (695/752)

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

  • ベストアンサー
  • 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

  • バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。

    バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。 あるフォルダにvbsファイルとそれを実行するためのバッチファイル、vbsで読み込むリストファイルを置いています。 これを現在ログインしているのとは別のユーザで実行したいのですが、ファイルの記述をすべてフルパス指定しなければ動きませんでした。 しかし、フォルダが変わるたびにすべてのパスを書き換えるのが大変なため、以下のように修正を加えたいと思っています。 (1)バッチファイルでvbsを実行する際、カレントディレクトリ情報を取得し、パスを確定。(CDコマンド) (2)vbsファイル実行 (3)(1)のCDコマンドで読み込んだ情報をvbsに引き渡し、リスト読み込み。 バッチファイルからvbsに引き渡す部分、vbsがバッチファイルから受け取る部分の記述が分かりません。 一例を教えていただけないでしょうか?

  • シンボリックリンク作成のバッチファイル

    親フォルダーに、aフォルダーとbフォルダーが入っています。 aフォルダー配下には、xフォルダーがあり、その中には複数のテキストファイルが入っています。 parent\a\x\test.txt parent\b\ 以下の様なバッチファイルを「送る」に登録しました。 @echo off rem 選択ディレクトリ配下のxディレクトリに移動 cd /D %1\x\ rem カレントディレクトリにあるすべてのファイルを、bディレクトリにコピー for %%i in (*.*) do ( copy "%%i" "..\..\b\" ) これにより、aフォルダーを選択してバッチファイルを実行すると、xフォルダー配下のテキストファイルがbフォルダーの中にコピーされることは確認しました。 ここで、コピーではなく、シンボリックリンク(mklink)を作成したいのですが、引数をどのように設定すればよいでしょうか。いろいろ試しましたがうまくいきませんでした。 ご教示よろしくお願いします。

  • バッチファイル作成について

    いつも参考にさせております。 バッチファイルで指定したディレクトリとそのディレクトリに含まれるサブディレクトリやファイルを全て削除したいと思っております。 例えば… 削除したいフォルダ:binフォルダ、objフォルダ フォルダ構成:C:\Documents and Settings\Kumagai\My Documents\Visual Studio 2005\Projects\WindowsApplication1 WindowsApplication1の直下にサブディレクトリが何個かありその直下にそれぞれbinフォルダ、objフォルダが存在します。 サブディレクトリが10個の場合binフォルダ、objフォルダもそれぞれ10個あるとします。 なおサブディレクトリの数は可変です。 この時、binフォルダとobjフォルダを一遍に削除するにはどのようにバッチファイルに記述すればよろしいのでしょうか? よろしければ教えてください。 環境はWindowXPですが、Vistaにも対応できるとなおうれしいです。

  • MS-DOSのバッチによるファイルリネームの方法

    いつもお世話になります。 MS-DOS(windows XP)で、あるディレクトリ内のファイルを一括リネームするようなバッチスクリプトを作成しようとしています。 ファイル名は、例えば「10P1125532_20080130135757_condA_para50.txt」というような感じで、後半の「_condA_para50.txt」は共通で、これが2万ファイルほどあります。 それで、後半の「_condA_para50」の部分を削除しようとして、まずはコマンドプロンプトでそのディレクトリに移動してから、 ren *_condA_para50.txt *.txt とやったのですが、認識されていないのか、リネームされませんでした。(エラーも出ませんでした) スクリプトに書く場合は、どのようにすればちゃんとリネームされるのでしょうか? よろしくお願いします。

  • バッチファイルの作成方法

    バッチファイルの初心者です。 下記のようなバッチを作成したいと思っています。 (1)本日の日付のディレクトリを作成する。 (2)そのディレクトリに数時間毎に作成される***.logを全て移動する。 (3)3日前に作成したディレクトリを削除する。 以上のような流れのバッチファイルは簡単に作成できるのでしょうか?

  • バッチやVBSの動作について

    Windows2003 Serer上で 週一回、ログファイルが溜まる ディレクトリがあります。 ディレクトリ名はYYYYMMDD となっています。 毎週1回、ディレクトリが作成されるため、古いものから順番に 自動で削除を行いたい為、 バッチか何かをタスクスケジュールで週一度、自動に動かすことを考えています。 バッチ、もしくはvbsはどのようなものを作成すれば宜しいでしょうか。当方、まったく初心者の為、そのままを 説明と共に頂ければとてつもなくありがたいです。 宜しくお願い致します。

  • Java(サーブレット)コンパイル用バッチファイルの作成

    Java(サーブレット)コンパイル用バッチファイルの作成 Java(サーブレット)コンパイル用バッチファイルの作成を以下のサンプルファイルを見ながら行いました。 @set CLASSPATH=C:\servletbook\apache-tomcat\common\lib\servlet-api.jar javac -sourcepath src -d classes src/%1 そもそもバッチファイルがよく分かっていないのですが、ヒントを頂きたいと思い質問します。 このバッチファイルを使用して、srcディレクトリ内のxxx.javaファイルのコンパイルは出来るのですが、src/fooディレクトリ内のxxx.javaファイルもコンパイルするためにはバッチファイルソースのどこを変更すれば良いでしょうか? また、src配下のすべてのディレクトリ内にあるxxx.javaファイルをコンパイル出来るようにするにはどうすれば良いでしょうか? ご教授をお願いします。<(_ _)>

    • ベストアンサー
    • Java
  • バッチファイルのディレクトリ内のファイル検索について

    バッチファイルのディレクトリ内のファイル検索について お世話になります。 現在カレントに6つのディレクトリとバッチがあります。 バッチを叩くと指定ディレクトリのmakeファイルというファイルを実行するようにしています。 ですが構成を変えまして、サブディレクトリのmakeファイルも実行出来るように変更したいと思っています。 どのようにすればよろしいでしょうか? 以下が現在のソースです。 @echo off setlocal enabledelayedexpansion set DIRS=libSrc clientSrc serverSrc for /d %%a in (%DIRS%) do ( cd %%a cd if EXIST makefile.mak ( make %* ) else ( if EXIST Integ.bat ( call Integ.bat %* ) ) cd ..\ ) endlocal フォルダ構成は bin clientSrc include lib libSrc serverSrc となっており、makeファイルはclientSrc、libSrc、serverSrcにあります。 そこでlibSrcだけ新たにフォルダを2つ作成し、そのフォルダの中のmakeファイルも拾えるようにしたいです。 よろしくお願いします。 bin clientSrc ---- makeファイル include lib libSrc ----|--- myLib ----- makeファイル |--- socketLib --- makeファイル serverSrc---makeファイル batファイル

  • macでバッチファイルを作成したい

    お世話になります。 macで下記のようなバッチファイルを作成したいのですが、 実現方法が全くわかりませんでした。。。 ターミナル・Applescriptどちらでも結構ですので、 (1)「バッチファイル動かすフォルダ」の2階層上にある  「雛形」フォルダを、その2階層上の場所に「sample」フォルダ  という名前でコピー ※c\hoge\hoge2\hoge3の階層で、hoge3で、バッチファイルを起動すると   hogeにある「雛形」フォルダのコピーが、hogeに「sample」という   名前で作成  ※フォルダ名は可変のため、階層で表現したい (2)「バッチファイル動かすフォルダ」にある「上書き」フォルダを  2階層上にある「sample」フォルダに上書きする  ※「上書き」フォルダは残ったままで、「sample」フォルダに   上書きしたい ターミナル・Applescriptどちらでも結構ですので、 お手数で申し訳ございませんが、教えて頂けないでしょうか? ネットを見ても全くわからない程の能力でして、 ソースを見せて頂ければ大変うれしいです。。。 何卒よろしくお願いします。

  • vbs ファイル検索後、任意の場所にコピー

    vbsにて、以下のようなことを実現したいのですが、よくわからないので、ご教授願います。 ・実現したいこと インプットボックスに検索したいファイル名を張りつけて、検索対象ディレクトリ配下から、ファイルを任意の場所にコピーしたい。 コピー参照元は、3つ別々のディレクトリ配下の中から、一つ指定して、検索としたい。 対象ファイルが見つかったら、保存先をフォルダを指定できるダイアログを表示して、任意の場所にコピーしたい。 vbsでの作成方法がよくわからないので、ご教授いただければ助かります。宜しくお願いいたします。

専門家に質問してみよう