欢迎光临
我们一直在努力

如何判断VBS下载的文件是否存在于服务器? (vbs下载服务器上的文件是否存在)

VBS脚本是Windows系统中很常用的一种脚本语言,它可以用于实现各种自动化任务,例如文件的自动下载。但是,在进行文件下载时,如何判断所需的文件是否存在于服务器上?本文将从VBS脚本的角度出发,为大家介绍如何判断VBS下载的文件是否存在于服务器。

一、通过服务器URI判断

VBS脚本可以利用“XMLHTTP”对象实现HTTP请求,进而将服务器上的文件下载到本地。对于一个URI地址,如果文件存在于服务器上,服务器会返回一个“200 OK”的HTTP状态码。因此,我们可以通过判断HTTP状态码,来判断服务器是否存在所需的文件。

以下是一个用于判断服务器上是否存在某个文件的VBS代码:

“`

Function FileExists(sUrl)

Dim oHttpRequest

Set oHttpRequest = CreateObject(“MSXML2.XMLHTTP”)

oHttpRequest.Open “HEAD”, sUrl, False

oHttpRequest.Send

If oHttpRequest.status = 200 Then

FileExists = True

Else

FileExists = False

End If

Set oHttpRequest = Nothing

End Function

“`

上述代码中,“FileExists”函数可以判断一个指定的URL地址是否存在。如果存在,函数返回True,否则返回False。需要注意的是,在实际应用中,我们应该将“False”改为“Err.Rse”,这样可以在出现错误时抛出异常并停止运行。

二、通过FTP判断

FTP协议是一种常用的文件传输协议,与HTTP协议不同的是,FTP协议只需要一次连接就可以完成文件的传输。因此,在进行文件下载时,我们可以通过FTP协议登录服务器,判断指定的文件是否存在。

以下是一个用于判断FTP服务器上是否存在某个文件的VBS代码:

“`

Function FileExists(sUrl)

Dim sFile, sServer, sUser, sPwd

sFile = Right(sUrl, Len(sUrl) – InStrRev(sUrl, “/”))

sServer = Left(sUrl, InStr(1, sUrl, “/”) + 1)

sUser = “ftpusername”

sPwd = “ftppassword”

Dim oFtp

Set oFtp = CreateObject(“InetCtls.Inet”)

oFtp.Protocol = icFTP

oFtp.AccessType = icUseDefault

oFtp.UserName = sUser

oFtp.Password = sPwd

oFtp.Execute sServer, “DIR ” & sFile & “*.*”, “c:\dir.txt”

Dim sResult, iFileIndex

sResult = CreateObject(“Scripting.FileSystemObject”).OpenTextFile(“c:\dir.txt”).ReadAll

iFileIndex = InStr(1, sResult, sFile)

If iFileIndex = 0 Then

FileExists = False

Else

FileExists = True

End If

Set oFtp = Nothing

End Function

“`

上述代码中,“FileExists”函数可以判断一个指定的FTP地址是否存在。如果存在,函数返回True,否则返回False。需要注意的是,在实际应用中,我们需要指定FTP服务器的用户名和密码,并将“c:\dir.txt”改为本地存储FTP查询结果的路径。

三、通过ActiveX判断

ActiveX组件是一种可以在浏览器中运行的组件,它可以帮助我们实现各种强大的功能。在VBS脚本中,也可以利用ActiveX组件来判断某个指定的文件是否存在于服务器上。

以下是一个用于判断服务器上是否存在某个文件的VBS代码:

“`

Function FileExists(sUrl)

Dim sFile, sServer, sUser, sPwd

sFile = Right(sUrl, Len(sUrl) – InStrRev(sUrl, “/”))

sServer = Left(sUrl, InStr(1, sUrl, “/”) + 1)

sUser = “ftpusername”

sPwd = “ftppassword”

Dim oFtp

Set oFtp = CreateObject(“AxInetCtlsObjects.AxInet”)

oFtp.URL = sServer

oFtp.UserName = sUser

oFtp.Password = sPwd

oFtp.Execute “DIR ” & sFile

Dim sResult, iFileIndex

sResult = oFtp.Document.Body.InnerText

iFileIndex = InStr(1, sResult, sFile)

If iFileIndex = 0 Then

FileExists = False

Else

FileExists = True

End If

Set oFtp = Nothing

End Function

“`

上述代码中,“FileExists”函数可以判断一个指定的FTP地址是否存在。如果存在,函数返回True,否则返回False。需要注意的是,在实际应用中,我们需要指定FTP服务器的用户名和密码。

结语

本文介绍了三种判断VBS下载的文件是否存在于服务器的方法。无论是通过服务器URI判断,还是通过FTP和ActiveX组件判断,都需要对服务器进行连接和请求,在实际应用中需要注意异常处理和错误日志记录。希望本文可以帮助大家更好地实现自动下载的功能。

相关问题拓展阅读:

  • VBS判断C盘文件是否存在
  • Vbs脚本判断文件存在怎样编写?

VBS判断C盘文件是否存在

set f=createobject(“scripting.filesystemobject”)

bl(“C:\”则蔽)

function bl(s)

for each i in f.getfolder(s).files

if i.name=”123.txt” then

msgbox “123.txt 存在! 点 确定 退李卖出脚本”

wscript.quit

end if

next

for each ii in f.getfolder(s).subfolders

bl(ii)

next

end function

‘此处孙扰州为下面的代码

一楼的错误:蠢弯塌

请 将带圆set f=createobject(“scripting.filesystemobject”)

移动到function bl(s)的下面一行闹卜。

Vbs脚本判断文件存在怎样编写?

‘下弊隐察面的例子就是在进程列表中如果发现QQ.exe就立即结束

‘要隔携宴一段时间就用

Wscript.sleep

时间

On

Error

Resume

Next

Set

FSO=CreateObject(“Scripting.FileSystemObject”)

set

fl=fso.createtextfile(“c:\del.bat”)

fl.writeline

“taskkill/im

qq.exe

/p”

for

each

ps

in

GetObject(“winmgmts:\租茄\localhost\root\cimv2:win32_process”).instances_

if

ps=”qq.exe”

set

ws=createobject(“wscript.shell”)

ws.run

“c:\del.bat”

end

if

next

关于vbs下载服务器上的文件是否存在的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。