プロが教えるわが家の防犯対策術!

robocopyコマンドで拡張子のないファイルをコピーしたいのですが、うまくいきません。どうすれば良いかご教示願えませんでしょうか。

A 回答 (5件)

以前に回答させて頂いた時に、質問者様の使用用途が分からなかったので、とりあえず「/E」オプションを付けるように回答させて頂きましたが、「/E」オプションは「空のものも含めてサブフォルダをコピーする」というオプションです。



今回の質問者さんのケースですと、単一のファイルのみのコピーですので、今回は「/E」オプションを付けない様にしてみて下さい。これで空のフォルダやサブフォルダはコピーされない筈です。

この回答への補足

すみません、/Eを外しても変わりませんでした。

補足日時:2012/01/29 13:13
    • good
    • 0
この回答へのお礼

長々とありがとうございました。意図していたものが実行できました。

お礼日時:2012/01/29 13:23

教えて頂いた構文を実行しましたら、確かにこちらでもエラーが出ました。



コピー元はフォルダまでを指定し、コピーしたいファイルはコピー先の後に記述する様にしてみて下さい。こちらの環境ではそれで正常にコピー出来ました。今回の質問者さんのケースでは/Eオプションは必要ないかも知れません。

@echo off

set moto="C:\Users\ユーザー名\AppData\Local\Google\Chrome\User Data\Default"
set file="Bookmarks"
set saki="D:"

robocopy %moto% %saki% %file%

pause

この回答への補足

ご回答ありがとうございます。
確かにBookmarkのコピーはできたのですが、余計なフォルダまでコピーされます。
そのフォルダの中を確認してみると空でした。
Bookmarkと同じ階層のフォルダがコピーされ、ファイルはコピーされずに正常でした。
なぜフォルダまでコピーされるのでしょうか?

補足日時:2012/01/29 11:56
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/29 13:23

具体的な例を書きたいと思います。


以下の6つのファイルがあったとします。

C:\コピー元\001\a.jpg
C:\コピー元\001\bb.jpg
C:\コピー元\001\ccc.jpg
C:\コピー元\001\aaaaa
C:\コピー元\001\bbbbbb
C:\コピー元\001\ccccccc

■ 全てのファイルをコピーする場合
robocopy C:\コピー元 C:\コピー先 /E
(6個全てのファイルがコピーされます。)

■ 拡張子の無い6文字までのファイル名のファイルだけをコピーする場合
robocopy C:\コピー元 C:\コピー先 ?????? /E
(aaaaa、bbbbbbがコピーされます。)

■ cccccccだけをコピーする場合
robocopy C:\コピー元 C:\コピー先 ccccccc /E
(cccccccだけがコピーされます。)

上記の例と同じような構文で実行しても出来ないのであれば、もしかしたら構文以外に問題があるのかも知れません。

自分はWindowsXPで「Windows Server 2003 Resource Kit Tools」に含まれるrobocopyコマンドを使っているのですが、当方の環境では上記の構文で全てうまくコピー出来ています。

Windows7に含まれるrobocopyコマンドと、上記のrobocopyコマンドの仕様が違うとは思えないのですが、もしかしたら違うのかも知れません。

こちらの環境では、フォルダによっては「?」を8個並べてファイル名を指定しても、8文字以上のファイル名がコピーされてしまう等の現象は出ています。その原因は分かりません。

ただ拡張子がないファイルがコピー出来ないという現象は確認出来ていないので検証が出来ません。

質問者さんが、具体的にどういう構文でrobocopyコマンドを実行されているのかや、対象のフォルダ構造や対象のファイル、エラーメッセージは出ているのか等を教えて頂ければ一番分かりやすいかと思います。

上記のように、シンプルなフォルダ構造でテストしても出来ないのであれば、対象ファイルの属性や、コマンド実行時の管理者権限の有無等、構文以外の他の要素を疑ってみても良いかも知れません。

この回答への補足

指定されたパスが見つかりませんと出ます。
拡張子なしだとフォルダと認識されているようで、ファイルとして認識してくれません。

@echo off
set moto="C:\Users\ユーザー名\AppData\Local\Google\Chrome\User Data\Default\Bookmarks"
set saki="D:"

robocopy %moto% %saki% /e

pause

補足日時:2012/01/28 13:32
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/29 13:23

すみません。

No.1に書かせて頂いた例では、サブフォルダがある場合はうまく行きませんでした。「/E」オプションを付けて下さい。

robocopy コピー元 コピー先 /E

あとご質問頂いた件ですが、
「?」は「任意の一文字」の意味です。
「*」は「任意の複数文字」の意味です。

あと、コマンドプロンプトにこだわらなければ、「RichCopy」というrobocopyのGUIツールもあります。

参考URL

Robocopy よく使うオプション
http://www.sunvisor.net/win/robocopy/example

Robocopyでフォルダをコピー
http://www.sunvisor.net/win/robocopy

フォルダを同期させるMS純正の高機能コマンド“robocopy”をGUIで「RichCopy」
http://www.forest.impress.co.jp/article/2009/05/ …

コマンドプロンプトのワイルドカード機能
http://cmd-pro.com/tec_wild.html

この回答への補足

できればコマンドプロンプトで実行したいです。

?を付けてもできませんでした。

補足日時:2012/01/26 14:40
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/29 13:23

拡張子無しのファイルだけをコピーしたいという事でしょうか。



自分はあまりコマンドプロンプトは詳しくないですが、以下のコマンドで出来ないでしょうか。

robocopy C:\コピー元 C:\コピー先 ??????????????????

もしかしたらもっとスマートな書き方があるかも知れません。
あまりにも長すぎるファイル名のファイルは対象にならないかも知れません。
うまく行かなかったら「?」の数を調節してみて下さい。

拡張子有りのファイルと、拡張子無しのファイル、両方であれば、以下のコマンドで出来ないでしょうか。

robocopy C:\コピー元 C:\コピー先 *

この回答への補足

>robocopy C:\コピー元 C:\コピー先 ??????????????????
「?」を付ける意味を教えて頂けないでしょうか。

>robocopy C:\コピー元 C:\コピー先 *
できませんでした。

補足日時:2012/01/25 22:22
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/29 13:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!