我只想将.xls文件移出目录(包括子文件夹),而不是.xlsx或.xlsm文件,我找到了一个命令,我认为它可以完成这项工作,如果我指定了.xlsx,并且只对扩展名为.xlsx的文件进行筛选,效果会很好。
但是,当指定.xls时,它会遍历.xls、.xlsx、.xlsm和.xlsb,即使我没有尾随通配符。
for /r "c:\source" %x in (*.xls) do move "%x" "c:\destination"我不太熟悉这一点,所以我可能只是遗漏了一些显而易见的东西,但尝试过搜索,却找不到任何东西来解决这个问题。
任何帮助都将不胜感激。谢谢
发布于 2017-12-18 10:39:13
*.xls模式将对照用户可见的长文件名和默认背景中存在的用于向后兼容性的短文件名进行检查。短文件名只有3个字符的扩展名,因此长名称longfilename.xlsx的文件具有短文件扩展名.xls。
要克服这种行为,最简单的解决方案是通过findstr建立一个额外的过滤器
for /F "delims= eol=|" %x in ('dir /S /A:-D /B "C:\source\*.xls" ^| findstr /I "\.xls$"') do move "%x" "c:\destination"https://stackoverflow.com/questions/47866167
复制相似问题