我意识到有很多问题已经回答过做类似的事情了。我已经研究了我想做什么,并没有找到任何似乎适用于我想要做的事情。在我想要做的事情中,有几个因素加在一起,我对批处理脚本了解不多。
首先,我需要查看具有特定命名方案的zip文件。这些命名的方式是file1234.zip,file2345.zip,file3456.zip等......这个命名方案是自动生成的并且已经存在。名称中的数字与修改或创建日期无关。我想要忽略的源目录中还有其他zip文件。 This can be solved with wildcards. "file*.zip"
接下来,我只需要移动符合上述条件的某些文件,这些文件在特定年份内进行了修改。即移动在2000年修改的zip文件,但保留所有其他文件。文件被修改的年份将是一个常量,并将在脚本中指定。
合并后,如果在2000年修改了file2345.zip,而其他文件在其他年份被修改,那么将移动file2345.zip,并忽略所有其他文件。
我学到了什么:
通配符是文件名中间的有效字符。
为所有符合我的命名标准的文件修改日期
forfiles /M file*.zip /C "cmd /c echo @file @fdate"
有了上述内容,我如何看待四位数的年份?
我不反对将xcopy或robocopy用于实际的文件移动。
非常感谢任何建议或想法。
答案 0 :(得分:0)
假设此命令dir file*.zip |find /i "file"
显示如下内容:
18/08/2015 11:58 45,617 file2456.zip
18/08/2015 11:58 156,789 file36789.zip
那么这段代码应该可以工作:
@echo off
md "d:\new folder" 2>nul
for /f "tokens=3,*" %%a in ('dir file*.zip ^|find /i "file" ^|find "/2000 "') do move "%%b" "d:\new folder"