vbs实现只复制比目标文件更新的文件
2014-04-21 21:54
543 查看
因为网站需要频繁的更新首页,有时候使用cdn经常导致首页正在生成内容的时候同步数据(可能是冲突,经常导致首页是空的),这就想了先生成一个不是首页的index2.htm然后再复制一遍为index.htm,这样index2的频繁读写也没问题了。所以先判断index2.htm不是空的时候才复制,而且必须是比index.htm更新的时候才复制。这样就需要一些脚本的支持了。
前几天写了一个(bat+xcopy实现只复制比目标文件更新的文件)还是出现为空的情况,这里特加些功能,参考很多网站的文章,感谢百度的结果很给力。
先来个bat版的
复制代码 代码如下:
@echo off
::每5分钟复制以下首页
for /f %%i in ('dir /b c:\index2.htm') do (
set indexdx=%%~zi
)
if %indexdx% gtr 5120 (
echo y | xcopy c:\index2.htm /d /r /k c:\index.htm
)
其中for /f %%i in ('dir /b c:\index2.htm') do (
set indexdx=%%~zi
)
是bat中获取index2.htm文件大小的。
然后通过if %indexdx% gtr 5120 (
实现判断是不是大于5120个字节
主要就是下面这个代码了功能更强,也比较简单
复制代码 代码如下:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
set fn2=fso.GetFile("c:\index2.htm")
flsize2=fn2.size
fldate2=fn2.datelastmodified
set fn=fso.GetFile("c:\index.htm")
flsize1=fn.size
fldate1=fn.datelastmodified
If fso.FileExists("c:\index2.htm") and flsize2>50000 and fldate2>fldate1 Then
fso.getfile("c:\index2.htm").copy("c:\index.htm")
if err.number=0 then WriteHistory "成功"&now(),"log.txt"
end if
Sub WriteHistory(hisChars, path)
Const ForReading = 1, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(path, ForAppending, True)
f.WriteLine hisChars
f.Close
End Sub
还有日志功能,当前bat下也可以的。需要的可以自己扩展下。
脚本之家远程文章,转载请注明出处。
前几天写了一个(bat+xcopy实现只复制比目标文件更新的文件)还是出现为空的情况,这里特加些功能,参考很多网站的文章,感谢百度的结果很给力。
先来个bat版的
复制代码 代码如下:
@echo off
::每5分钟复制以下首页
for /f %%i in ('dir /b c:\index2.htm') do (
set indexdx=%%~zi
)
if %indexdx% gtr 5120 (
echo y | xcopy c:\index2.htm /d /r /k c:\index.htm
)
其中for /f %%i in ('dir /b c:\index2.htm') do (
set indexdx=%%~zi
)
是bat中获取index2.htm文件大小的。
然后通过if %indexdx% gtr 5120 (
实现判断是不是大于5120个字节
主要就是下面这个代码了功能更强,也比较简单
复制代码 代码如下:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
set fn2=fso.GetFile("c:\index2.htm")
flsize2=fn2.size
fldate2=fn2.datelastmodified
set fn=fso.GetFile("c:\index.htm")
flsize1=fn.size
fldate1=fn.datelastmodified
If fso.FileExists("c:\index2.htm") and flsize2>50000 and fldate2>fldate1 Then
fso.getfile("c:\index2.htm").copy("c:\index.htm")
if err.number=0 then WriteHistory "成功"&now(),"log.txt"
end if
Sub WriteHistory(hisChars, path)
Const ForReading = 1, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(path, ForAppending, True)
f.WriteLine hisChars
f.Close
End Sub
还有日志功能,当前bat下也可以的。需要的可以自己扩展下。
脚本之家远程文章,转载请注明出处。
您可能感兴趣的文章:
相关文章推荐
- bat+xcopy实现只复制比目标文件更新的文件
- [C#]实现文件复制[更新]实时显示进度条
- 编写一个应用程序实现文件的复制。使用格式:java Copy 源文件目标文件,功能是将源文件的内容复制到目标文件。
- 使用JAVA实现比较两个文件夹下的文件新增和修改情况,并复制到新的目录(实现增量更新项目)
- 编程实现文件的复制功能,要求源文件名及目标文件名在程序运行后根据提示输入
- web服务文件更新自动同步、数据库主从复制、shell脚本实现网站代码备份和mysql备份
- 利用递归和IO实现复制文件夹下所有文件和文件夹至目标文件夹
- Java实现文件复制
- Python实现文件复制删除
- [PHP][Function]实现将一个文件夹下的所有文件及文件夹复制到另一个文件夹里(保持原有结构
- 利用xcopy命令实现本地文件复制到远程服务器的方法
- Makefile中用foreach,eval,call实现将目标文件编译到指定目录 临峰不畏 发表于5个月前 原 Makefile中用foreach,eval,call实现将目标文件编译到指定目录
- Java IO 之 FileReader FileWriter 实现字符文件的复制(处理FileWriter新建文件失败的问题)
- 如何实现win7不打开文件直接复制文件里面的内容
- linux下实现文件存储系统,创建和删除大量文件或文件夹时,updatedb进程会更新文件索引节点inode
- Java实现文件或文件夹的复制到指定目录实例
- 【COCOS2DX-LUA 脚本开发之十二】Hybrid模式-利用AssetsManager实现在线更新脚本文件lua、js、图片等资源(免去平台审核周期)
- 实现文件复制命令
- java实现文件的复制,删除,解压
- 通过复制现有的redhat虚拟机的文件,实现在VMWare8.0上重建一个新的redhat虚拟机环境