robocopyでスペースを含むログファイルを使用するにはどうすればよいですか?


11

私は次のコマンドを試しています:

robocopy "x:\dir" "y:\dir" /mir /z /tee /fft /nfl /ndl /eta /log:"x:\path to logs\12-15-11 01 file with spaces.txt"

私はこのエラーを受け取っています:

ERROR : Invalid Parameter #10 : "/log:x:\path to logs\12-15-11 01 file with spaces.txt"

編集#1

上記のコマンドが有効だったことが判明し、パスにタイプミスがありました。スペースを含むパスがある場合は、次のようにrobocopyの/ logスイッチにスペースを指定できます。/log:"c:\path to a file\robocopy.log"


私のために働く。おそらく上部に詳細なエラーが表示されますか?
カルコ

コマンドラインで直接実行するのではなく、スクリプトのコンテキストでそのコマンドを実行していますか。おそらく何か他の何かがエスケープを追加していますか?
ゾレダチェ

エラーメッセージは、最初の引用符がコロンの後ではなく前であることを示唆しています。実行しようとしていたコマンドは示されているとおりですか?
ハリージョンストン

すみません、パスにタイプミスがありました。大いに恥ずかしい。皆の迅速な助けをありがとう!手順は何ですか、この質問を削除する必要がありますか?または、それを言い換えて、robocopyの/ logスイッチへの引数を引用符で囲むことができることを示す答えを追加できますか?
slm

@slmを削除する理由はありません。上記のコメントのいずれかが問題の発見に役立った場合は、回答として投稿するよう依頼し、回答に正しいマークを付けます。問題がまったく別のものである場合は、独自の回答を作成し、回答としてマークして、将来の検索者が同様の問題があるかどうかを確認できるようにします。
music2myear

回答:


11

robocopyの/ logスイッチにスペースを含むパスを提供する必要がある場合は、次のようにします。

/log:"c:\path to logs files\some log file.txt"

無効なエラー:パラメーター#11 "/ log"が表示されます。それ以外の場合は動作するコマンドの最後に追加しました。
アンドリューS

私は窓をサポートしている場所で仕事をしていないので、これをテストする方法がありません。
slm

ログファイルの親ディレクトリが存在することを確認してください。Robocopyはそれを作成せず、悲しいことに、dirが存在しない場合、cmdlineパラメーターについて文句を言います。
モジョ

4

Powershellドキュメントとしてログを記録する方法は4つあります

/log:<LogFile> :ステータス出力をログファイルに書き込みます(既存のログファイルを上書きします)。

  • 例えば: robocopy "c:\a" "c:\b" /log:"c:\copy_log.log"

/log+:<LogFile> :ステータス出力をログファイルに書き込みます(出力を既存のログファイルに追加します)。

  • 例えば: robocopy "c:\a" "c:\b" /log+:"c:\copy_log.log"

/unilog:<LogFile> :ステータス出力をUnicodeテキストとしてログファイルに書き込みます(既存のログファイルを上書きします)。

  • 例えば: robocopy "c:\a" "c:\b" /unilog:"c:\copy_log.log"

/unilog+:<LogFile> :ステータス出力をUnicodeテキストとしてログファイルに書き込みます(既存のログファイルに出力を追加します)。

  • 例えば: robocopy "c:\a" "c:\b" /unilog+:"c:\copy_log.log"

詳細については、https://technet.microsoft.com/en-us/library/cc733145(v = ws.11).aspx


また、/teeスイッチを追加することをお勧めします。これは、コマンドライン出力を生成し、ユーザーがコマンドラインでファイルのコピーの進行状況を確認できるようにするためです。
vibs2006

1

そのディレクトリにファイルを作成するために管理者権限/またはポップが必要な場合に発生します

したがって、log / tempディレクトリを作成し、そのログディレクトリにログファイルを追加してください。

$ mkdir C:\log

例えば:

$ robocopy "c:\a" "c:\b" /log:"c:\log\copy_log.log"

0

ログファイルへのパスにスペースまたはその他のスクリプト区切り文字が含まれている場合は、EDIT#1や@slmが示唆するように引用符囲んでください。ただし、バッチスクリプトに関するこのドキュメントで説明されているエスケープ文字の使用にも注意してください。


かなり悲惨で望ましくないWin 10の移行後も同じ問題が発生しています。
マーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.