0

我正在考虑使用 robocopy.exe 将我的照片从各种设备同步到不同文件夹下的“C:\documents and settings”备份,我的命令行语法如下:

对于/rc:\documents and settings %g in (.) do c:\robocopy %gc:\photos *.jpg /xo

此语法旨在将 c:\documents 的子文件夹中的所有 .jpg 文件和设置复制到 c:\photos 以便我可以浏览缩略图而无需更改文件夹,并且还避免复制具有相同日期和时间的文件标记到 c:\photos 以节省时间。

错误在于循环会将“文档和设置”解析为单个单词并在 C:\documents、c:\documents\ 下查找文件,从而导致错误。

我试图在“文档和设置”以及“\文档和设置”周围加上引号,但没有成功。

它适用于文件夹名称中没有任何空格的目录,如下所示,但在上面显示时失败:

for /rc:\abc %g in (.) do c:\robocopy %gc:\photos *.jpg /xo

当文件夹 c:\abc\galaxy 和 c:\abc\iphone 中有 jpg 文件时。

有什么方法可以改进此语法以实现我想要的吗?

感谢和问候马可·黄

4

1 回答 1

0

您没有为 robocopy 的参数加上引号,因此它的第一个参数最终是错误的。对于没有空格的路径,这无关紧要,这就是它起作用的原因。

错误代码:对于 /rc:\documents and settings %g in (.) do c:\robocopy %gc:\photos *.jpg /xo

更正的代码:

for /r "c:\documents and settings" %g in (.) do c:\robocopy "%g" c:\photos *.jpg /xo

(请注意 robocopy "%g" 上的引号。不仅仅是递归 FOR 的文档和设置)

于 2013-12-07T22:01:42.530 回答