• ベストアンサー

バッチファイルにてフォルダのみをコピーしたい

たくさんのフォルダが有って、その下にもサブフォルダがあります。 また、フォルダの中にはファイルも存在します。 このような状況の中、サブフォルダもフォルダもコピーせず、フォルダのみをコピーしたいのですが、バッチファイルにて可能でしょうか?

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

xcopy /T だと, 「サブディレクトリも含めて, 空でない全てのディレクトリ」を作りそうな感じですね. しょうがないので, #2 に従って for の /D オプションでディレクトリだけまわして mkdir かなぁ. for /D %D in (c:\soko\*) do mkdir d:\koko\%~nxD って感じ?

VitaminBB
質問者

お礼

回答ありがとうございます。 そんなに簡単じゃないってことですね。 DOSの知識があまりないので、アドバイスだけでは やれそうにありませんでした。

その他の回答 (3)

  • nemocci
  • ベストアンサー率35% (35/100)
回答No.3

NO2です XCOPYの/Tオプションを使えば、ファイルをコピーせずにディレクトリだけのコピーが出来そうです XCOPY C:\koko D:\koko /t でいけると思います 使用した事がないので、サブディレクトリもコピーされてしまうかどうかはわかりません これでいけるなら、バッチを組むほどではない気もしますが?

VitaminBB
質問者

お礼

回答ありがとうございます。 実行してみたところ、サブディレクトリもコピーされています。 サブディレクトリはコピーしないようにしたいのですが、 どうすればいいのでしょうか?

  • nemocci
  • ベストアンサー率35% (35/100)
回答No.2

質問者様の内容だと、フォルダ以下のファイルのコピーではないので フォルダ(ディレクトリ)の作成になると思います 手間はかかりますが、全てのディレクトリを作るように組めば大丈夫です

VitaminBB
質問者

お礼

回答ありがとうございます。

  • shredder
  • ベストアンサー率26% (27/103)
回答No.1

サブフォルダもフォルダもコピーせず、フォルダのみをコピーしたいのですが、←これってどういう事ですか? サブフォルダもフォルダもコピーせず、ファイルのみをと言うことですか? であれば cドライブのルートフォルダに居るとして cd c:\フォルダ名 cd サブフォルダ名 copy ファイル名(全てなら*.*) 最後はexitで元に戻りますが。こういう事で良かったですか?

VitaminBB
質問者

お礼

回答ありがとうございます。 >サブフォルダもフォルダもコピーせず、フォルダのみをコピーしたいのですが、←これってどういう事ですか? すみません。間違えました。以下が正解です。 サブフォルダも”ファイル”もコピーせず、フォルダのみをコピーしたいのですが

関連するQ&A

  • バッチファイルでフォルダを作りたい

    ”123”というフォルダの中にバッチファイルがあります このバッチファイルを実行すると、フォルダ名を取得して、”123 あ”というフォルダと ”123 い”というフォルダをフォルダ”123”の中に作りたいのですができるのでしょうか? そして、このバッチファイルをコピーして、フォルダ”456”の中に貼り付けます。 ここでバッチファイルを実行すると、フォルダ”456”のなかに、”456 あ”と”456 い”というフォルダを 作れるようにしたいのですが。 お分かりの方、よろしくお願いいたします。

  • バッチでサブフォルダ内のファイルも含めたコピー処理をするには

    DOSコマンドのコピーコマンドについての質問です。 指定されたフォルダ内のファイル全て(サブフォルダ内に格納されているファイルも全て)をc:\bkup\にコピーするバッチを組みたいのですがどのようにすればよいのでしょうか。 xcopy /y /e %1 c:\bkup\ とした場合、サブフォルダもコピー対象に入りますがサブフォルダ内のファイルの格納先がc:\bkup\サブフォルダ名\になってしまい、私の実現したい処理とは異なります。 サブフォルダ内のファイルもc:\bkup\にコピーするにはどうすればよいのでしょうか。 宜しくお願い致します。

  • VBA バッチファイルでコピー出来ない

    以下のマクロを作りましたが、うまくいきません。 フォルダBにあるバッチファイルを実行するだけのマクロで、バッチファイルはフォルダAにあるファイルを自身のフォルダつまりフォルダBにコピーするものです。 マクロ Sub Test() Dim Str As String Str=shell(folderB\batch.bat, vbnormalfocus) End sub Batch.batの中身 Copy folderA\fileA . 注:folderAやfolderBはそれぞれのフォルダのフルパスです。 実行すると、何故かフォルダBでなくてデスクトップにコピーされます。バッチファイルをクリックして直接起動すると、目論見通りフォルダBにコピーされます。コマンドプロンプトからフォルダBに移動し、バッチファイルを起動しても、目論見通りフォルダBにコピーされます。 マクロから起動した時だけ、どうしてデスクトップにコピーされるのでしょうか?

  • VBA バッチファイルでコピーできない

    この質問は直近で出した質問を誤って締め切ってしまったため、再質問として書いてます。 以下のマクロを作りましたが、うまくいきません。 フォルダBにあるバッチファイルを実行するだけのマクロで、バッチファイルはフォルダAにあるファイルを自身のフォルダつまりフォルダBにコピーするものです。 マクロ Sub Test() Dim Str As String Str=shell("""" & folderB\batch.bat & """", vbnormalfocus) End sub Batch.batの中身 Copy "folderA\fileA" . '見えにくいですが、最後にピリオドがあります。 folderAやfolderBはそれぞれのフォルダのフルパスです。パスに空白を含むため " で囲むようにしてます。 実行すると、何故かフォルダBでなくてデスクトップにコピーされます。バッチファイルをクリックして直接起動すると、目論見通りフォルダBにコピーされます。コマンドプロンプトからフォルダBに移動し、バッチファイルを起動しても、目論見通りフォルダBにコピーされます。 マクロから起動した時だけ、どうしてデスクトップにコピーされるのでしょうか?

  • 1つ下のファイルをコピーするバッチファイル

    コマンドプロンプトで実行するバッチファイル(x.bat)で C:\Aというフォルダのさらに1つ下のフォルダ (このフォルダは1つのみで名前は毎回変化します) の中にあるc.mpgというファイルを D:\Bフォルダにコピーするバッチファイルを 作りたいのですがどのように記述すればよいのでしょうか。 例えば、C:\A\data_20120922195626というフォルダ (data_20120922195626というフォルダ名は任意の名前ですが C:\Aフォルダの中にはこのフォルダ1つしかありません) の中に\c.mpgというファイルがあるとします。 バッチファイル x.bat を実行すると D:\Bフォルダにc.mpgをコピーしたいのです。 なお、data_20120922195626というフォルダの名前は バッチファイルを実行する時には毎回異っていますが バッチファイル実行中は変化しません。 VBscriptやwshなどは使わずWindosXPの標準DOS機能のみで お願いします。(WindosXP SP3)

  • バッチファイルでサブフォルダにあるexeを実行

    お世話になります。 バッチファイルをつかって サブフォルダにあるexeファイルの実行を 試みていますが、exeファイルの指定がうまくできず実行できないので、 ご教示いただけないでしょうか。 pushd %%0\.. でバッチファイル実行フォルダをカレントにしています。 バッチファイル実行ファイルがあるフォルダ000に サブフォルダA、そのなかにサブフォルダB、さらにその中にサブフォルダG1,G2,G3 があり、G1,G2,G3の中に、それぞれaaa.exeがあります。 フォルダ000のバッチファイルからaaa.exeを実行するために、 ファイルの指定をどのようにしたらよいかご教示いただけないでしょうか? よろしくお願いいたします。 フォルダ000  batファイル   フォルダA     フォルダB       フォルダG1          aaa.exe       フォルダG2          aaa.exe       フォルダG3          aaa.exe バッチファイル内は、 forループで以下のようにしています。 for /L %%i in (2,1,3) do ( A\B\G%%i\aaa.exe )

  • バッチファイルの書き方

    サブフォルダすべてにひとつのファイルをコピーしたいのですが、 for /d %%a in (subdir*) do copy コピーしたいファイル名 "%%a\" 上のようなバッチファイルではうまくいきませんでした どのようにしたらいいのか、どなたか教えていただけないでしょうか

  • バッチファイルでフォルダをコピー

    robocopyを使用してC:\test1\20090601フォルダをC:\test3の下にコピーしたいのですが、 実際はC:\test1\20090601の下のファイル・フォルダがコピーされてしまいます robocopy C:\test1\20090601 C:\test3 20090601フォルダごとコピーするにはどうしたらよいのでしょうか? ご存知の方いらっしゃいましたら教えてください よろしくお願いいたします

  • バッチファイル 別ファイルにリストしてあるファイルをコピーしたい

    バッチファイルで、ファイル名前をリストしてあるの別ファイルを参照して、リストの名前のファイルを任意のフォルダにコピーしたいです。 ●条件 ・コピー元/コピー先は固定でよいです。 ・できれば、コピー元のサブフォルダのファイルも対象にしたいです。 (この場合、リストにもxxx\○○○.txt のように記述) 「for」コマンドを使うのでしょうか? 宜しくお願いいたします。

  • バッチでファイルのコピーを行いたい

    バッチを利用してファイルのコピーを実施しようとしておりまあす あるフォルダ内にあるファイルをすべて別のフォルダに移動したいのですが、 このとき、 ・コピー対象のファイルは、MAXで11ファイル(cpfile1.csv-cpfile11.csv)ですが、すべて存在するとは限らない ・コピーに失敗したファイルは、あと2回コピーのリトライをする (MAX3回コピーを実施する) ・途中でコピーが失敗したファイルがあったとしても、フォルダ内のすべてのファイルに対してコピーを行う copy /Y c:A\cp_from\*.csv c:A\cp_to\*.csv で行おうとしたのですがこの場合、2回のリトライを行う方法が不明でした for文を利用して行うべきなのでしょうか? またその時にはどのように書けばよいのでしょうか> お分かりになられる方がおりましたら、ご教授お願いいたします