我需要制作一个批处理文件,可以根据参数将文件从一个路径复制到另一个路径。
例如,输入“datecopy -m 8 c:/ copyfrom /*.* d:/ copyto /*.*”,会发现c:/ copyfrom中的所有文件的日期都不到8个月,并将它们复制到d:/ copyto -folder。或者,代替-m代表月份,我可以使用-h代表小时或-y作为年份。
当然,这不是完整的程序,但应该让我开始。感谢任何潜在的提示。 :)
答案 0 :(得分:1)
我知道这可能看起来不像是在回答你的问题,但在jscript or VbScript
中做到这一点可以让你自己避免更多的痛苦和心痛。最近我一直在关注Windows Powershell,基本上是Windows Scripting的速度 但是,您可以放心,从XP开始,Windows脚本主机(jscript和VBScript)已经在Windows上(可能从W2k开始)。
我的建议是不要使用Windows批处理命令。
答案 1 :(得分:0)
假设您可以组装一组good-old-unix工具,请查看find
实用程序。它有你要求的选项,等等。
find c:/copy/from -atime 240 | xargs cp "{}" c:/copyto
答案 2 :(得分:-1)
这是一个将复制8个月以上文件的脚本。
# Script TimedCopy.txt
var str from, to, timediff, list, file
lf -n "*" $from ($ftype=="f") AND ($fmtime > addtime(diff(("-"+$timediff)))) > $list
while ($list <> "")
do
lex "1" $list > $file
system copy ("\""+$file+"\"") ("\""+$to+"\"")
done
lf(列表文件)命令非常灵活。其帮助页面位于http://www.biterscripting.com/helppages/lf.html。
要运行脚本,请将脚本复制并粘贴到文件C:/Scripts/TimedCopy.txt中,启动biterscripting并运行此命令。
script "C:/Scripts/TimedCopy.txt" from("c:/copyfrom") to("d:/copyto") timediff("240000000")
timediff参数的说明
“240000000”表示240天,00小时,00分钟,00秒
“120000”表示12小时,00分钟,00秒
“3000”表示30分钟,00秒
“30”表示30秒
等
(按日期,我认为你的意思是修改。如果你的意思是创建,在脚本中使用$ fctime而不是$ fmtime。)
希望这有帮助。