- ベストアンサー
バッチでのファイルのコピー
ファイルのコピーをしたいのですが、 C:\aaa\bbb\???\test.txt と、「bbb」のディレクトリまでは分かるのですが、 必ず「???(任意)」のディレクトリが入ります。 そのディレクトリの下には必ず対象となるtest.txtと いうファイルが存在します。 「???」がなければ、 copy c:\ddd c:\aaa\bbb\test.txt と出来るのですが、「???」のために取ることが出来ません。 どなたか、ご存知の方がいましたら教えて下さい。 宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
VBスクリプト(WSH)では駄目ですか? CopyFrom = "C:\aaa\bbb\" CopyTo = "C:\" TargetFile = "test.txt" Dim FSO, Fol, SubFol, TargetPath Set FSO = CreateObject("Scripting.FileSystemObject") Set Fol = fso.GetFolder(CopyFrom) For Each SubFol In Fol.SubFolders TargetPath = SubFol.Path + "\" + TargetFile If FSO.FileExists(TargetPath) Then fso.CopyFile TargetPath, CopyTo , true End If Next
その他の回答 (4)
- i-touch
- ベストアンサー率40% (170/415)
私は xcopy c:\ccc\bbb c:\ccc\bak /e/d/h/r/y >>c:\bakup.log みたいにして c:\ccc\bbb 以下のフォルダ、ファイルをバックアップしています。(実際は別ドライブですが) xcopyのオプションは /? で参照してください。 後ろの「 >>c:\bakup.log」は、コピーしたファイルのリストになります。 同名ファイルの上書きが嫌な場合などは、多機能のバックアップ用フリーソフトを探すことをお薦めします。 では!
お礼
ありがとうございます。 フォルダ、ファイルごとコピーする際には xcopyを利用するようにします。 本題とは、ずれますがログのことも対処しないと いけないので参考になりました。
- AE100kai
- ベストアンサー率26% (54/201)
残念ながらディレクトリが分からないとコピーは出来ません。 考えられる方法としては… 1.ファイル検索でCドライブ(bbb)の下のディレクトリから『test.txt』を検索して、入っているフォルダを見付けてそこからコピーする。 2.『bbb』のサブディレクトリ全てを1つずつ見て探す。 3.多分、これが1番簡単かもしれませんが… DOSプロンプトを開き、分かる所までのディレクトリ『c:\aaa\bbb\』から『tree』コマンドで見付ける方法です。 c:>tree \aaa\bbb /f とすれば、『bbb』以下のサブディレクトリとファイルを全て表示します。 スクロールが早過ぎて分からない場合は、『SHIFT+S』でスクロールを止める事が出来ますので、止めて確認してスクロールと繰り返せば探せると思います。
お礼
ありがとうございます。 いくつもの対処法を考えて頂き、そんなことも 出来るんだと大変、参考になりました。
- arukamun
- ベストアンサー率35% (842/2394)
copyコマンドでワイルドカード(*や?)が使えるは、ファイル名の所だけで、ディレクトリには使えません。
お礼
確認して頂き、ありがとうございました。
- densha
- ベストアンサー率29% (333/1123)
>copy c:\ddd c:\aaa\bbb\test.txt 送り側のファイルが指定されていますか? 送り側と受け側の整合性に問題はないですか? DOSから離れて久しいので自信は何のですが・・・
お礼
確認事項、ありがとうございます。 ファイルコピーの場合、送り先に対象となるフォルダが 存在するか確認します。
お礼
ありがとうございます。 WSHのことは全く判らなかったので 大変、参考になりました。 無事、WSHで解決することが出来ました。