gpt4 book ai didi

vbscript - vbs脚本通过ftp发送文件并检查/删除原始文件

转载 作者:行者123 更新时间:2023-12-04 02:05:55 27 4
gpt4 key购买 nike

我正在尝试通过 ftp 发送文件,然后检查该过程是否成功完成,如果是,我将删除原始文件并仅保留发送到 FTP 目标文件夹中的文件。

我设法修补了连接到 FTP 并发送文件的脚本,但我不确定如何交叉检查原始文件夹和 FTP 上的文件夹,以便确定复制是否成功。

这是通过 FTP 发送文件的代码,在测试中它成功发送了所有文件,但我必须在删除前检查

Set oShell = CreateObject("Shell.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")

path = "D:\test\"

FTPUpload(path)
Sub FTPUpload(path)

On Error Resume Next

Const copyType = 16

'FTP Wait Time in ms
waitTime = 80000

FTPUser = "test"
FTPPass = "testtest"
FTPHost = "ftp.test.com"
FTPDir = "/htdocs/test/"

strFTP = "ftp://" & FTPUser & ":" & FTPPass & "@" & FTPHost & FTPDir
Set objFTP = oShell.NameSpace(strFTP)


'Upload single file
If objFSO.FileExists(path) Then

Set objFile = objFSO.getFile(path)
strParent = objFile.ParentFolder
Set objFolder = oShell.NameSpace(strParent)

Set objItem = objFolder.ParseName(objFile.Name)

Wscript.Echo "Uploading file " & objItem.Name & " to " & strFTP
objFTP.CopyHere objItem, copyType


End If


'Upload all files in folder
If objFSO.FolderExists(path) Then

'Entire folder
Set objFolder = oShell.NameSpace(path)

Wscript.Echo "Uploading folder " & path & " to " & strFTP
objFTP.CopyHere objFolder.Items, copyType

End If


If Err.Number <> 0 Then
Wscript.Echo "Error: " & Err.Description
End If

'Wait for upload
Wscript.Sleep waitTime

End Sub

如果有任何帮助,我将不胜感激。

最佳答案

不确定这是否是最佳方式,但您可以通过 FTP 命令获取文件列表,并将结果与​​您期望的结果进行比较。这是一个例子:

' Create the FTP command file...
With CreateObject("Scripting.FileSystemObject").CreateTextFile("c:\ftp.txt", True)
.WriteLine "USER test"
.WriteLine "testtest"
.WriteLine "ls /htdocs/test/"
.WriteLine "quit"
.Close
End With

' Run the command and capture its output...
With CreateObject("WScript.Shell")
.Run "%comspec% /c ftp -n -v -s:c:\ftp.txt ftp.test.com >c:\filelist.txt", 0, True
End With

这将创建文件 c:\filelist.txt,然后您可以打开该文件并检查您上传的文件是否存在。当然,您可以向 ls 命令添加额外的参数以获得更详细的信息。例如,ls -l 会为您提供更新日期以及文件大小。

关于vbscript - vbs脚本通过ftp发送文件并检查/删除原始文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25419917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com