为什么目标上的尾随斜杠会让 robocopy 感到困惑?

为什么目标上的尾随斜杠会让 robocopy 感到困惑?

为什么以下 robocopy 命令会出现混乱?从目标中删除尾部斜杠(“S:\Temp Backup”),它就会按预期工作。

robocopy “S:\Temp\” “S:\Temp 备份\” /mir /ndl /mt /r:0

输出:

在此处输入图片描述

它会导致解析器将选项作为目标字符串的一部分。询问的主要原因是,如果您在 PowerShell 中使用制表符补全,它会在目录上附加一个尾部斜杠。同样的问题也发生在 cmd.exe 中,所以这不是 PowerShell 的怪癖。

答案1

为什么目标上的尾随斜杠会让 robocopy 感到困惑?

因为\被视为转义字符

这适用于源路径和目标路径,但仅当与用双引号括起来的文件夹一起使用时(文件名中有或没有空格)。"遇到此问题时,最终的(不正确的)字符串文字清晰可见。

该问题的源路径版本抱怨尚未指定目标路径(因为任何目标路径都包含在不正确转义的源路径中)。

解决该问题的方法包括使用:

  • 没有双引号(假设路径中没有空格)。

  • 无尾随\(例如C:\path\to\folder

  • 双尾\\(例如C:\path\to\folder\\

  • 尾随\.(例如C:\path\to\folder\.

相关内容