批量长码多线插入

时间:2018-02-27 02:51:37

标签: batch-file

我有一个用批处理代码编写的脚本。基本上代码是将文件夹中的所有.htm复制到另一个文件夹。我的问题是有些文件夹有空格,我也需要排除一些文件夹。我正在使用robocopy这样做。

例如。

@echo off
robocopy.exe ^
Z:\xxx\folder\ ^
C:\Users\xxx\Desktop\New ^
*.htm ^
/xd ^
Z:\xxx\folder\abc ^
Z:\xxx\folder\aaa ^
Z:\xxx\folder\bbb ^
"Z:\xxx\folder\problem here" ^
/S
pause

我尝试使用双引号

@echo off
robocopy.exe ^
Z:\xxx\folder\ ^
C:\Users\xxx\Desktop\New ^
*.htm ^
/xd ^
Z:\xxx\folder\abc ^
Z:\xxx\folder\aaa ^
Z:\xxx\folder\bbb ^
Z:\xxx\folder\problem here ^
/S
pause

它没有用。我该怎么做?

1 个答案:

答案 0 :(得分:0)

(就像@Stephan已经写过的那样)你在引用的字符串"Z:\xxx\folder\problem here" ^之前需要一个空格 当用于线路延续时,原因是插入符^的令人讨厌的行为 如果插入符号是一行中的最后一个字符,它将追加下一行,但也会转义该行的第一个字符
在您的情况下,第一个引用将被转义,因此第二个引用将用于启用行的其余部分(也是最后一个插入符号)的引用,并且命令在那里结束。

正如Stephan所示,可以通过前缀(至少)带有空格的引用行来避免它。

还有另一种更加模糊的方法来通过在插入符之前使用虚拟重定向来禁用转义行为。

robocopy.exe ^
Z:\folder\ <NUL ^
"Z:\folder\problem here" ^
/S