

題名の通り、batファイルで robocopy を使用し、データをコピーしたいと考えています。  
エラースキップやログを残したいため、ファイルのコピーにはrobocopyを利用する方向で考えております。

**現在できていること**  
あるフォルダから別のフォルダへ、指定したキーワードを含む名前のファイルをコピーする

**できていないこと**  
名前にスペースを含むファイルがコピーできない

例：robo を含む名前のファイルをコピーしたい

  * **コピーできるファイル**  
robo.txt、robo123.ppt

  * **コピーできないファイル**  
robo robo.txt、robo 123.ppt

robocopyではスペースを含むファイル名の認識ができないのでしょうか。  
他のやり方でコピーできる方法をご存知の方は教えていただけると幸いです。  
よろしくお願いいたします。

* * *

## 2020/03/23 追記

コピーしたいファイル名が事前に決まっている場合は "" でファイル名を囲えばいいと思うのですが、  
フォルダ内のファイルを検索し、指定した名前を含むファイルを抽出したい場合はどうすればよいのでしょうか。  
現在、for文を使用しています。

[code]

    rem //コピー元のフォルダパス指定　　
    set fs_src=※任意のフォルダパス　
    
    rem //抽出条件文字の指定
    set name=robo　
    
    for /r  %fs_src%  %%I in (*%name%*.*) do  robocopy ～　
    
[/code]

  
簡易的にまとめましたが、上記のようなコードを書いております。

* * *

## 2020/03/25 追記

アドバイス頂いたやり方で空白を含む名前のデータをコピーすることができました。

  * コピー元データの保存先：fs_src
  * 抽出したデータの保存先：fs_bk
  * 抽出したいファイル名： name

robocopy /s "%fs_src%" "%fs_bk%" " _%name%_.*"

現在、コピーと同時にLOGファイルの出力、ディレクトリ配下のみのコピーに挑戦中です…

[code]

    robocopy /s "%fs_src%" "%fs_bk%" "*%name%*.*" /LOG:%logdir%\%target%_%ToDay%.txt %%~pI %fs_bk% %%~nxI
    
[/code]

上記のように続けてLOGコマンドを打つと、LOGデータしか作成されず、データのコピーができませんでした。


CC BY-SA 4.0
2020-03-20T08:10:44.007
63995
2020-03-25T08:23:13.140
2020-03-25T08:23:13.140
32986
38298
question
windows batch-file
batファイルでrobocopyを使用し、スペースを含む名前のファイルをコピーしたい


スペースを含むファイル名をダブルクォートでくくってみてください。

"robo robo.txt"、"robo 123.ppt"


CC BY-SA 4.0
2020-03-20T08:17:54.940
63996
2020-03-20T08:17:54.940
3060
63995
answer


[`FOR`コマンドのヘルプ](https://docs.microsoft.com/ja-jp/windows-
server/administration/windows-
commands/for)で説明されていますが、`~`を付けることで、変数を括る`"`を削除します。  
その上で、改めて`"`で括ることで空白を正しく扱えるようになります。

[code]

    for /r %%I in (*%name%*.*) do  robocopy ～　"%%~I"
    
[/code]


CC BY-SA 4.0
2020-03-23T02:41:39.223
64032
2020-03-23T02:41:39.223
4236
63995
answer


for文で処理せずともrobocopyの引数で対応出来ると思います。

[code]

    rem //コピー元のフォルダパス指定
    set fs_src=※任意のフォルダパス
    
    rem //コピー先のフォルダパス指定
    set fs_dest=※任意のフォルダパス
    
    rem //抽出条件文字の指定
    set name=robo
    
    robocopy "%fs_src%" "%fs_dest%" "*%name%*.*" 
    
[/code]


CC BY-SA 4.0
2020-03-23T02:48:51.617
64034
2020-03-23T02:48:51.617
29342
63995
answer