复制通配符源文件夹名称到目标位置

10
我想从通配符源文件夹复制到目标文件夹:
xcopy a:\parentfolder\n* x:\parentfolder

因此,只有以“n”开头的文件夹才应该被复制到目标位置。

如果您需要帮助使此功能正常工作,我们将不胜感激。


1
那么你现在的代码有什么问题吗?如果有错误,请发布出来。否则,请说明哪些部分与你的预期不同。 - Blorgbeard
有错误吗?哪里出了问题? - Luigi
我已经删除了目标文件夹中的一些文件,以测试上述命令是否会复制缺失的文件。尽管上述xcopy没有报错,但缺失的文件也没有被复制。我也尝试了以下xcopy命令: xcopy "E:\parentfolder\N*.*" "N:\parentfolder" /D /F /I /Y /R - Wonderer
2个回答

9
for /f "delims=" %%a in ('dir /b/ad "a:\parentfolder\n*" ') do xcopy "a:\parentfolder\%%a\*" x:\parentfolder\

根据您提供的信息,XCOPY会将 n* 视为文件规范,并且没有办法让它区分其他含义。


非常感谢你,Magoo。不过似乎有一个小错误。我已经尝试了几种不同的方式运行你的代码,但是出现了一个错误:“%%a was unexpected at this time”。 - Wonderer
好的,我搞定了! :-)似乎问题出在双 %%a 上了... 将其改为单 %a 就行了。谢谢Magoo !! :-) - Wonderer
最后的微调是为xcopy添加/s开关。希望这对其他人有所帮助。 - Wonderer
1
@RenéSchutte 当你从批处理文件中运行此命令时,双百分号“%%”是必需的。而当你从命令行中运行时,只需要一个单独的百分号“%”,正如你所发现的那样。 - unclemeat
@user5428856 - dir 命令中开关之间的空格是可选的,尽管我通常会使用它们。源路径和目标路径之间的 \ 明显是一个错误 - 而且这个错误已经存在了18个月以上!发现得好! - Magoo

3
如果您首先将CD定位到要复制的文件夹,它就可以正常工作:
a:
cd \parentfolder
xcopy /s n*.* x:\parentfolder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接