
ミラーコピーをしたいのですが、エラーが出たらリトライを1回にしたいです。
そこで、
robocopy (コピー元) (コピー先) /mir /b /r=1
を実行するとコマンドプロンプトの画面が一瞬表示されすぐに消えて、コピーがされませんがどこがおかしいのでしょうか。
また、コピーのログを残したいのですが、「/log:c:\(ファイル名).txt」でログファイルを残せるのでしょうか。
robocopy (コピー元) (コピー先) /mir /b /r=1 /log:c:\(ファイル名).txt
windows7、スタンドアロン、administrators権限ユーザーでの実行です。
No.2ベストアンサー
- 回答日時:
バグではない気がします。
サンプルを挙げると、以下のようなバッチファイルで出来るはずです。
右クリックから管理者権限で実行してください。
Windows10環境で動作確認していますが、恐らくWindows7でも同じ動作をするはずです。
―――――――――――――――――――――
@echo off
rem ■ バッチファイルがあるフォルダをカレントディレクトリにする
pushd "%~dp0"
rem ■ コピー先フォルダの作成
md "C:\Program Files Backup\Program Files"
rem ■ 画面のクリア
cls
rem ■ robocopyコマンドを実行
echo.
echo. 処理中です・・・
robocopy "C:\Program Files" "C:\Program Files Backup\Program Files" /mir /b /r:1 /log:"C:\Program Files Backup\robocopy.log"
rem ■ 完了メッセージ
echo.
echo. 完了しました
echo.
pause
―――――――――――――――――――――
又、ログの出力先フォルダは事前に作成しておく必要があります。
又、もし「Program Files」フォルダ内に「desktop.ini」という隠しファイルがある場合は、その効果によって、実際のフォルダ名とは違うフォルダ名で表示されます。
つまり、
「C:\Program Files」を「C:\Program Files 2」にコピーしたとしても、
「desktop.ini」も一緒にコピーされますから、
「C:\Program Files 2」が「Program Files」と表示される場合があるという意味です。
教えて頂いたようなカッコいいバッチを書けるようになりたいと思っていました!
大変勉強不足で恐縮ですが、単にrobocopy~ という一行を書いても動かないのでしょうか?
バッチファイルがあるデレクトリをカレントデレクトリにするのは何故でしょうか?
タスクスケジューラーで定期的に自動でバックアップをとりたい場合はpauseは入れない方がいいでしょうか?
質問ばかりですみません…
今は試す環境がないので明日確認してみます!
No.3
- 回答日時:
No.2です。
> 単にrobocopy~ という一行を書いても動かないのでしょうか?
いえいえ、動きます。あくまで実用のサンプルを書かせて頂いただけです。
> バッチファイルがあるデレクトリをカレントデレクトリにするのは何故でしょうか?
バッチファイルを右クリックして管理者として実行した場合は、
カレントディレクトリが「C:\WINDOWS\system32」になりますから、
バッチファイル内の全てのパスが、
絶対パス(「C:\xxx.log」等)で書かれていれば問題無いですが、
相対パス(「xxx.log」等)で書かれている場合は、
「C:\WINDOWS\system32\xxx.log」のように解釈されてしまいますから、
それを防ぐ為です。
又、バッチファイルに対し、ファイルやフォルダをドラッグ&ドロップした場合も、カレントディレクトリがバッチファイルのあるフォルダではなくなる場合がありますので同様です。
> タスクスケジューラーで定期的に自動でバックアップをとりたい場合はpauseは入れない方がいいでしょうか?
おっしゃる通り、入れない方が良いかと思います。
教えて頂いたバッチで上手くいきました!
そして追加の質問についてもわかりやすくご説明頂き納得しました。まだまだ教えて頂きたいことはあるのですが、また勉強してみてわからないことがありましたらこちらで質問させていただくかもしれません。
本当にどうもありがとうございました。
No.1
- 回答日時:
「/r=1」を「/r:1」に変えてみてください。
「/log:c:\(ファイル名).txt」につきましては、おおよそ問題無いと思いますが、
パスに半角スペースを含む場合は、
「/log:"c:\xxx xxx.txt"」や、
「"/log:c:\xxx xxx.txt"」という感じで記述してください。
又、ログを上書きせず、追記していく場合は、「/log+:」と記述してください。
又、「pause」コマンドでバッチファイルの処理を一時停止出来ますので、robocopyコマンドの次の行に「pause」とだけ記述すると、バッチファイルを一時停止出来ます。
ありがとうございます!
質問欄に書いたのが間違ておりまして「/r:1」と実際はしているのですが動かないのです。。
ちなみにそのほかのオプションでも動かないことが多いです。
logの出力に間違いはなさそうで安心しました。
記述方法に間違いがないのに実行されないのであれば、スタンドアロンで利用しており更新ファイルはあったっていないのでバグなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
exeファイルの実行結果をテキス...
-
linuxのsshの反応が非常に遅い。
-
バッチファイル内置換
-
バッチスクリプト処理でエラー...
-
.cshrcでのエラー
-
CSHが使えない REDHAT
-
SolarisでJDKのインストール情...
-
コマンドプロンプトの危険性を...
-
CreateProcessでうまくexeファ...
-
DebianのApache(掲示板)CGIエ...
-
バッチファイルで多重起動を防ぐ
-
大塚商会で新しくシステム、ス...
-
VBでExcelが起動されているか知...
-
libintlの入手方法を教えてくだ...
-
ソフトのインストール場所って...
-
コンソールアプリの起動結果待...
-
フロッピーディスクの読み込み方法
-
パソコンには、「慣れる」とい...
-
ソースコードからインストール...
-
cygwinでno such file or direc...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メーリングリスト宛てのメール...
-
バッチファイル内置換
-
exeファイルの実行結果をテキス...
-
batファイル 行った履歴をテキ...
-
USBメモリ内のバッチで書き出す...
-
linuxのsshの反応が非常に遅い。
-
コマンド実行結果のファイル出力
-
batが動かない
-
cronを使って、CSVファイルのデ...
-
【Mac/Xcode】カレントディレク...
-
linux環境にて、ある特定の行に...
-
プログラムでTAを制御するコマ...
-
Mac OS ventura のapplescript...
-
コンソールアプリの入出力制御
-
時刻の同期について
-
バッチ処理(for文)について
-
PowerShellで自分が書いたコマ...
-
ソフトのインストール場所って...
-
バッチスクリプト処理でエラー...
-
フロッピーディスクの読み込み方法
おすすめ情報