我想创建一个简单的脚本,将文件夹的全部内容移动到父目录中,并将其插入到上下文菜单中。
这是脚本。我试图了解如何robocopy
使用带有空格的路径名。Echo
和 pause 仅用于故障排除。
@echo 开启 设置原点= %1 设置目标=“%〜dp1” 回显 %来源% 回显%目的地% 暂停 robocopy %origin%%destiny%/ E / MOVE / R:2 / ETA 暂停
答案1
您不需要在命令中用引号括住路径set
,只有当您尝试在命令中使用变量时才需要这样做。
set
将整个内容视为字符串并且不关心空格,而命令robocopy
将把空格(%foo%
展开时)视为参数分隔符。
您传递给批处理文件的任何文件路径在调用批处理文件时都需要用引号引起来(否则空格会将路径解析为多个参数),因此为了避免某些内容被引用而其他内容没有,您可以使用表单%~1
删除引号。
但是,您发布的脚本中有一个缺陷,那就是如果您传递的原始路径(即%1
)尾随\
,那么%~dp1
它会计算为与 相同的路径,%1
而不是父路径。