微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

脚本下载文件并根据Windows Vista计算机上的date重命名?

我需要每天运行一个脚本,它将从固定位置下载文件,并使用合适的文件名-YYYYMMDD-HHSS.ext时间戳将其保存在我的计算机上。 我需要一个关于那个文件在那个特定时间的历史logging。 我可以手动检查,看看有什么变化,所以不需要compairson。

(我正在寻找一个在线服务,为我做这个,但我认为我的机器上的本地运行的脚本将是足够好的)。

虽然我有我的机器上的PHP,我宁愿如果它是一个纯粹的Windows内置解决scheme,以防万一我(可能)适应别人的系统(非技术人员)。

如果有人有这样的事情,可以贡献的代码 – 帮助将不胜感激!

如何在shell脚本中保留带有回显的主要空格?

蝙蝠/shell文件复制到Unix / Windows

batch file“:此时出乎意料”

unix – 统计每行/字段出现的字符数

如何从脚本以非阻塞的方式执行程序

d

我可以获取KornShell中当前脚本的绝对path吗?

Powershell – 从string中删除

为什么运行opendir,readdir,stat比Windows dir命令慢?

使用shell脚本计算文件和目录

版权信息插入多个文件

您的任务可以使用Windows Script Host语言( VBScript或JScript)轻松编写脚本。

要从Internet上下载文件,可以使用XMLHTTP对象从服务器请求文件内容,然后使用ADO Stream对象将其保存到磁盘上的文件中。

至于时间戳,问题是VBScript和JScript都没有内置的函数来格式化你需要的格式的日期,所以你将不得不自己编写代码。 例如,您可以将日期分成几个部分,如果需要的话可以将它们连接在一起。 或者,您可以使用使用yyyymmddHHMMSS.mmmmmmsUUU日期格式的WMI SWbemDateTime对象,并从中简单提取yyyymmddHHMMSS部分。

无论如何,这里是一个示例脚本(在VBScript中),说明了这个想法。 我在strFile变量中对原始文件名进行了硬编码,因为我懒得从URL中提取内容(并且在URL没有指定文件名的情况下,比如http://www.google.com )。

Dim strURL,strFile,strFolder,oFSO,dt,oHTTP,oStream strURL = "http://img.zgserver.com/windows/logo.gif" ''# The URL to download strFile = "logo.jpg" ''# The file name strFolder = "C:Storage" ''# The folder where to save the files Const adTypeBinary = 1 Const adSaveCreateOverWrite = 2 ''# If the download folder doesn't exist,create it Set oFSO = CreateObject("Scripting.FileSystemObject") If Not oFSO.FolderExists(strFolder) Then oFSO.CreateFolder strFolder End If ''# Generate the file name containing the date-time stamp Set dt = CreateObject("WbemScripting.SWbemDateTime") dt.SetvarDate Now strFile = oFSO.GetBaseName(strFile) & "-" & Split(dt.Value,".")(0) & "." & oFSO.GetExtensionName(strFile) ''# Download the URL Set oHTTP = CreateObject("MSXML2.XMLHTTP") oHTTP.open "GET",strURL,False oHTTP.send If oHTTP.Status <> 200 Then ''# Failed to download the file WScript.Echo "Error " & oHTTP.Status & ": " & oHTTP.StatusText Else Set oStream = CreateObject("ADODB.Stream") oStream.Type = adTypeBinary oStream.Open ''# Write the downloaded byte stream to the target file oStream.Write oHTTP.ResponseBody oStream.SavetoFile oFSO.Buildpath(strFolder,strFile),adSaveCreateOverWrite oStream.Close End If

随意问你是否需要更多的解释。

像Mercurial这样的版本控制系统可以为您做到这一点,而无需重命名文件。 脚本可能很简单( 在这里获取wget和Mercurial):

wget http://blah-blah-blah.com/filename.ext hg commit -m "Downloaded new filename.ext"

这样做的一个很好的特性是,除非文件内容已经改变,否则不会发生提交。

要查看历史记录,请使用hg log或TortoiseHg(外壳扩展)。

建立在: http : //blog.netnerds.net/2007/01/vbscript-download-and-save-a-binary-file/

http://developernotes.thomaspowell.com/2008/06/vbscript-to-convert-timestamp-to.PHP

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐