标题:[已结]每隔三分钟拷贝文件的批处理
作者:yishu | 时间:2006-02-23 07:15 | 标题:[已结]每隔三分钟拷贝文件的批处理
我想在dos下用批处理实现每隔三分钟拷备c:\log\log.log到d:\logbak\log.log
应该如何实现!
───────────────── 版务记录 ─────────────────
执行:Will Sort
操作:修改标题:《19227 - 问个超高难的问题!》
处罚:因属论坛新人,不予积分处罚
提示:请访问 {7326}论坛新手必读,所有人的基本行为准则
───────────────── 版务记录 ─────────────────
[
Last edited by willsort on 2006-3-30 at 15:44 ]
作者:tigerpower | 时间:2006-02-23 18:55
使用 sleep :
@echo off
:cycle
copy /y c:\log\log.log d:\logbak\log.log
sleep 180
goto cycle
作者:weilong888 | 时间:2006-02-23 19:30
这东西利害。
作者:JonePeng | 时间:2006-02-23 20:55
2楼的程序的缺点是不能实现后台复制,好像还不是符合楼主的要求哦

我觉得楼主的目标应该设计一个这样的程序:调用中断处理,常驻内存,实时监控,后台复制,并且能继续运行其它程序。这类似于Windows的计划任务。批处理很难做到,C语言就可以。
[
Last edited by JonePeng on 2006-2-23 at 20:56 ]
作者:doscc | 时间:2006-03-27 19:05
@echo off
copy c:\log\log.log d:\logbak\log.log
set mytime=%time:~3,2%
set wintime=%time:~0,3%
:t
set /A mytime+=3
if "%mytime%" GTR 60 set /A mytime-=60
if "%mytime%" =="60" set /A mytime=00
:m
set times=%time:~0,5%
set ti=%times:~3%
if "%ti%"=="00" set wintime=%time:~0,3%
if "%wintime%%mytime%"=="%times%" copy c:\log\log.log d:\logbak\log.log && goto t
goto m
[ Last edited by doscc on 2006-3-27 at 22:00 ]
作者:chenall | 时间:2006-03-27 23:16
我也来贴一个
@echo off
:start
copy /y c:\log\log.log d:\logbak\log.log
choice /T 180 /d y
goto start
作者:doscc | 时间:2006-03-28 22:51
这么好用的命令 choice
可是在我的XP 里的 cmd 没有这个命令啊
不知道为什么?
在2003就有
作者:Climbing | 时间:2006-03-28 23:30
复制一个过去就行了,choice好象有两个版本。
作者:3742668 | 时间:2006-03-29 00:51
XP直接就用ping好了
ping 1.1.1.1 -w 3000 -n 1
设定n的次数为1次,可尽量地使时间精确。
作者:kingchain | 时间:2006-03-29 11:06
Originally posted by chenall at 2006-3-27 23:16:
我也来贴一个
@echo off
:start
copy /y c:\log\log.log d:\logbak\log.log
choice /T 180 /d y
goto start
j此方法好!
请问你的 {copy to slip}怎么搞的啊?想学
[
Last edited by kingchain on 2006-3-29 at 11:07 ]
作者:chenall | 时间:2006-03-29 17:07
加code代码
例子:
[code]
@echo off
:start
copy /y c:\log\log.log d:\logbak\log.log
choice /T 180 /d y
goto start
[/code]
作者:doscc | 时间:2006-03-29 17:33
请问 chenall
"" 的作用是什么?
----------------------------------------
哦知道了.
[ Last edited by doscc on 2006-3-29 at 17:37 ]
作者:warmoon | 时间:2006-04-04 10:35
Originally posted by JonePeng at 2006-2-23 20:55:
2楼的程序的缺点是不能实现后台复制,好像还不是符合楼主的要求哦 :P
我觉得楼主的目标应该设计一个这样的程序:调用中断处理,常驻内存,实时 ...
那我是菜菜鸟,pengpeng能不能传个C的样本上来我:P好好学学?谢谢阿!
作者:pizigao | 时间:2006-04-09 01:00
不错不错~收下了
作者:fpqcj | 时间:2007-03-12 00:53 | 标题:都是高手,学习学习呀!!!
都是高手,学习学习呀!!!
作者:happygogo | 时间:2007-03-13 05:47
太强了啊
作者:axi | 时间:2007-03-13 06:52
向楼主提供一个VBS脚本如下:
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
do
objFSO.CopyFile "c:\log\log.log" , "d:\logbak\log.log", OverwriteExisting
WScript.Sleep (1000*60*3) '延时3分钟
loop
把以上代码复制到记事本中,再另存为 copy.vbs 双击此文件即可在后台执行复制文件,要注意是D:\logbak目录一定要存在,否则出错。要终止,请关闭 wScript.exe 进程。
作者:anqing | 时间:2007-03-13 08:21
Const OverwriteExisting = True
第一句代表什么不太明白?
作者:axi | 时间:2007-03-13 12:23
首先创建一个名为 OverwriteExisting 的常量并将其值设置为 True,再使用此常量告诉 FileSystemObject 可以对目标文件的现有实例进行覆盖。 do ... loop 语句就是当条件为 True 时或条件变为 True 之前,重复执行语句块,在这里就是重复执行复制文件(CopyFile)命令。
[ Last edited by axi on 2007-3-13 at 07:40 AM ]
作者:DFWYYY | 时间:2009-05-26 02:23 | 标题:下载看看!
下载看看!
作者:wtp791211 | 时间:2009-05-26 07:07
4楼的朋友说得有道理,就是有个批DOS窗口在那里确实烦人,不过可以用这个办法,把2楼朋友的批处理,用一个DOS转EXE的软件,转成EXE执行,这样就可以不用看到DOS窗口了.我个人觉得这样比较完美
作者:msg753 | 时间:2009-05-26 11:51
呵呵新手来看看。
作者:mfcliu | 时间:2009-05-27 00:16
学习了
作者:abc2121 | 时间:2009-05-27 03:19
good 学习中~
来源:https://www.cn-dos.net/forum/viewthread.php?tid=19227 · 打印时间 2026-08-11 22:30