1

我需要制作一个批处理文件,可以根据参数将文件从一个路径复制到另一个路径。

例如,键入“datecopy -m 8 c:/copyfrom/*.* d:/copyto/*.*”,将在 c:/copyfrom 中找到所有日期小于 8 个月的文件,并将它们复制到 d:/复制到 - 文件夹。或者,我可以使用 -h 小时或 -y 来代替月的 -m。

这当然不是完整的程序,但应该让我开始。感谢您提供任何潜在的提示。:)

4

3 回答 3

1

我知道这可能看起来不像是在回答您的问题,但是通过在jscript 或 VbScript中执行此操作可以为您节省更多的痛苦和心痛

最近我一直在看Windows Powershell,基本上是 Windows Scripting on speed。
但是,您可以放心,Windows 脚本宿主(jscript 和 VBScript)从 XP 开始(可能从 W2k 开始)已经在 Windows 上。

我的建议是不要使用 Windows 批处理命令。

于 2010-02-05T08:06:35.393 回答
0

假设您可以组装一套老式的 unix 工具,请查看该find实用程序。它有您要求的选项等等。

find c:/copy/from -atime 240 | xargs cp "{}" c:/copyto
于 2010-02-05T08:08:52.100 回答
-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。)

希望这可以帮助。

于 2010-02-15T15:28:17.750 回答