web-dev-qa-db-ja.com

robocopy batを実行して、ドライブ全体を別のドライブにコピーします

ドライブ全体(d :)から別のドライブ(k :)への単純なバックアップ(ミラー)を実行しようとしています。ソース(d :)と宛先(k :)を定義する.batファイル( 'backup.bat')を作成し、このバッチファイルをdドライブのフォルダー(d:\ temp)に配置しました。バッチファイルをダブルクリックすると、バッチファイルで定義したものではなく、ソースをd:\ tempとして定義します。 d :.

.batファイルのテキストは次のとおりです。

@echo off
echo To begin backing up data:
pause
robocopy "D:" "K:" /L /v                 
echo.
pause
exit

これは、backup.batをダブルクリックしたときに表示されるものです

enter image description here

ご覧のとおり、ソースはd:\ tempとして定義されています。これがバッチファイルの場所ですが、バッチファイルではD:と定義しました。何らかの理由で、宛先が正しく定義されています。

何か案は?

-al

編集:「/」をソースと宛先の場所に追加すると、以下のコードを参照してください、さらに奇妙な動作が表示されます(スクリーンショットを参照)。これで、ソースは定義されたソースと宛先の両方になり、宛先なしになります。

@echo off

echo To begin backing up data:
pause

robocopy "D:\" "K:\" /L /v


echo.            
pause
exit

enter image description here

そして、ソースと宛先から「」を削除すると…。

@echo off

echo To begin backing up data:
pause

robocopy D:\ K:\ /L /v
echo.            
pause
exit

enter image description here

9
cherrytree

"D:"を使用すると、Dドライブ(D:\)のディレクトリrootディレクトリを指定しますnotですが、代わりに、Dのcurrentディレクトリ(例ではD:\temp)。

この問題を解決するには、ソース仕様に\を追加します(そこにある間、dest仕様にも追加します)。

robocopy d:\ k:\ /L /v                 
9
PA.

/Eオプションを使用します。 /copyall経由で/ZB/DCOPY:DAT/?などの他の必要/有用なパラメーターも確認してください。

2
Megachip