为什么目标上的尾部斜杠会混淆 robocopy?

mun*_*her 3 robocopy

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

robocopy "S:\Temp\" "S:\Temp Backup\" /mir /ndl /mt /r:0

输出:

在此输入图像描述

它使解析器将选项包含在目标字符串中。询问的主要原因是,如果您在 PowerShell 中使用制表符完成功能,它会在目录上粘贴尾部斜杠。同样的问题也发生在 cmd.exe 中,所以不是 PowerShell 的怪癖。

Ana*_*man 6

为什么目标上的尾部斜杠会混淆 robocopy?

因为\正在被当作转义字符

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

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

此问题的解决方案包括使用:

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

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

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

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