web-dev-qa-db-ja.com

名前にスペースを含むディレクトリをコピーする方法

Robocopyを使用しようとしていますが、ディレクトリ名にスペースがあるため、robocopyを動作させることができません。
3つのディレクトリ(マイドキュメント、マイミュージック、マイピクチャ)を「C:\ test-backup」にコピーしようとしていますが、最終結果を
'C:\ test-backup\My Documents'
'C:\ test-backup\My Music'
'C:\ test-backup\My Pictures'

私のコマンドは機能しません:
robocopy C:\Users\Angie C:\test-backup "My Documents" /B /E /R:0 /CREATE /NP /TEE /XJ /LOG+:"CompleteBackupLog.txt"

私が何をしても、それは起きていないだけです。誰か提案やトリックがありますか?

14
Angie

My DocumentsC:\test-backupから分離するのは何ですか?そして、なぜMy Documentsのみを引用符で囲むのですか?

私はそれがタイプミスだと仮定しています、robocopy C:\Users\Angie "C:\test-backup\My Documents" /B /E /R:0 /CREATE /NP /TEE /XJ /LOG+:"CompleteBackupLog.txt"を使用してみてください

[編集:]ドキュメントで指定されている構文(robocopy <Source> <Destination> [<File>[ ...]])にはFileと記述されているため、 フォルダ

使用する必要がありますrobocopy "C:\Users\Angie\My Documents" "C:\test-backup\My Documents" /B /E /R:0 /CREATE /NP /TEE /XJ /LOG+:"CompleteBackupLog.txt"

10

試行錯誤を繰り返し、結果を観察した後(つまり、ハッキングしました)、動作するようになりました。

スペースを含むパス名を使用するには、引用符が必要です。秘Theは、パス名の後に引用符の前にスペースがなければならないということです...このように...

robocopy "C:\Source Path " "C:\Destination Path " /option1 /option2...

これはほとんどバグのようで、確かにあまり直感的ではありません。

トッド・K.

66
toddk63

パスに末尾のバックスラッシュが含まれていない場合、引用符を閉じる前にスペースを追加する必要はありません。したがって、次のコマンドが機能するはずです。

robocopy "C:\Source Path" "C:\Destination Path" /option1 /option2...

ただし、以下は機能しません。

robocopy "C:\Source Path\" "C:\Destination Path\" /option1 /option2...

これは here で説明されているエスケープの問題によるものです。

\エスケープは、末尾のバックスラッシュを含む引用されたディレクトリパスで問題を引き起こす可能性があります。これは、行末の閉じ引用符が\でエスケープされるためです。

19
Neven
robocopy "C:\Users\Angie\My Documents" "C:\test-backup\My Documents" /B /E /R:0 /CREATE /NP /TEE /XJ /LOG+:"CompleteBackupLog.txt"
robocopy "C:\Users\Angie\My Music" "C:\test-backup\My Music" /B /E /R:0 /CREATE /NP /TEE /XJ /LOG+:"CompleteBackupLog.txt"
robocopy "C:\Users\Angie\My Pictures" "C:\test-backup\My Pictures" /B /E /R:0 /CREATE /NP /TEE /XJ /LOG+:"CompleteBackupLog.txt"
2
Green Black

パスの最後のディレクトリを指定する場合は、最後のディレクトリを削除します。

たとえば、「\ server\directory with space\directory with space」など。

それはそれを行う必要があります。

1
Tekwiz

このフォルダーがコマンドの最初のフォルダーである場合、フォルダー名のスペースを使用しても機能しないため、フォルダー名のスペースをアンダースコアに置き換えます。

0
MikeB