createobject("wscript.shell").run """D:\Acrobat\Reader\AcroRd32.exe"" """&f &""""
在VBS中调用WINDOWS的FTP函数较困难,除非你能将API函数封装成ACTIVEX DLL.下面是网上找到的函数:***********************************************
FTP 函 数 描 述
InternetOpen 初始化 Win32 internet
InternetConnect 打开一个FTP, HTTP, or Gopher 应用会话
FtpCreateDirectory 在服务器上建立一个新的目录
FtpRemoveDirectory 删除服务器上的一个目录
FtpSetCurrentDirectory 设置服务器上当前的工作目录
FtpGetCurrentDirectory 返回服务器当前的工作目录
FtpOpenFile 打开服务器上的一个文件进行读写
FtpGetFile 接收指定的文件并且在本地建立它
FtpPutFile 发送指定文件到服务器
FtpDeleteFile 删除服务器上一个指定的文件
FtpCommand 发送命令到服务器
FtpFindFirstFile 返回文件信息。放在 WIN32_FIND_DATA 结构中
InternetFindNextFile 调用 FtpFindFirstFile()后在目录中连续查找
FtpRenameFile 修改服务器上指定的文件的名字
主要是显示远端目录列表,上传、下载文件,
'########################################################################
'## ##
'## FTPAPI声明 ##
'## ##
'########################################################################
Public Const ERROR_NO_MORE_FILES = 18
Public Const ERROR_INTERNET_EXTENDED_ERROR = 12003
Public Const FTP_TRANSFER_TYPE_BINARY = &H2
Public Const FTP_TRANSFER_TYPE_ASCII = &H1
Public Const INTERNET_FLAG_PASSIVE = &H8000000
Public Const INTERNET_FLAG_RELOAD = &H80000000
Public Const INTERNET_FLAG_KEEP_CONNECTION = &H400000
Public Const INTERNET_FLAG_MULTIPART = &H200000
Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Public Const INTERNET_OPEN_TYPE_DIRECT = 1
Public Const INTERNET_OPEN_TYPE_PROXY = 3
Public Const INTERNET_INVALID_PORT_NUMBER = 0
Public Const INTERNET_SERVICE_FTP = 1
Public Const INTERNET_SERVICE_GOPHER = 2
Public Const INTERNET_SERVICE_HTTP = 3
Public Const MAX_PATH = 260
Public Const NO_ERROR = 0
Public Const FILE_ATTRIBUTE_READONLY = &H1
Public Const FILE_ATTRIBUTE_HIDDEN = &H2
Public Const FILE_ATTRIBUTE_SYSTEM = &H4
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
Public Const FILE_ATTRIBUTE_NORMAL = &H80
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100
Public Const FILE_ATTRIBUTE_COMPRESSED = &H800
Public Const FILE_ATTRIBUTE_OFFLINE = &H1000
Public Const INTERNET_DEFAULT_FTP_PORT = 21
Public Const INTERNET_DEFAULT_GOPHER_PORT = 70
Public Const INTERNET_DEFAULT_HTTP_PORT = 80
Public Const INTERNET_DEFAULT_HTTPS_PORT = 443
Public Const INTERNET_DEFAULT_SOCKS_PORT = 1080
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Public Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
'连接FTP服务器的操作函数
'打开连接internet的会话
Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _
ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
'sAgent--要调用internet对话的应用程序名
'lAccessType--请求的访问的类型,包括:
'INTERNET_OPEN_TYPE_PRECONFIG---预配置(缺省)
'INTERNET_OPEN_TYPE_DIRECT--直接指向internet
'INTERNET_OPEN_TYPE_PROXY--通过代理服务器连接
'sProxyName--如果lAccessType被设置为INTERNET_OPEN_TYPE_PROXY,该参数为
'代理服务器的名字
'sProxyBypass--包含一系列代理服务器地址的字符串
'lFlags--会话的选项,可包括下列值:
'INTERNET_FLAG_DONT_CACHE--不对数据进行本地缓冲或通过网关服务器缓冲
'INTERNET_FLAG_ASYNC--当操作完成时,将同INTERNET_STATUS_REQUEST_COMPLETE
'一起进行一个状态回调
'INTERNET_FLAG_OFFLINE--只通过永久缓冲进行下载操作
'打开一个根据连接类型的Internet连接
Public Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _
(ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, _
ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, _
ByVal lFlags As Long, ByVal lContext As Long) As Long
'hInternetSession--函数InternetOpen()打开Internet对话返回的值
'sServerName--要连接的服务器的名称或IP
'nServerPort--该连接的Internet端口
'sUsername--登录的用户帐号
'sPassword--登录的口令
'lService--要连接的服务器类型(这里是连接FTP服务器,连接的类型为常数INTERNET_SERVICE_FTP)
'关闭Internet连接
Public Declare Function InternetCloseHandle Lib "wininet.dll" _
(ByVal hInet As Long) As Integer
'hInet--InternetConnect()函数返回的值
'文件查找操作
'在FTP连接中查找一个文件。在调用此函数后取得第一个文件后,可以接着调用FtpFindNextFile()
'获得下一个查到的FTP服务器上的文件。
Public Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" _
(ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _
lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As Long
'lpszSearchFile--指向要搜索的文件名。可以通配符*.*的形式。
'lpFindFileData--用于装载与找到的文件有关的具体信息
'dwFlags--数据传输的方式,通常设置为0,(ASCII方式)
'继续由FtpFindFirstFile()函数发起的文件搜索操作
Public Declare Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" _
(ByVal hFind As Long, lpvFindData As WIN32_FIND_DATA) As Long
'hFind--FtpFindFirstFile()函数的返回值
'lpvFindData--用于装载与找到的文件有关的具体信息
'目录操作
'改变FTP服务器的当前目录。
Public Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" _
(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
'lpszDirectory--包含要到达的目录名。可以是相对的或绝对的路径。
'在ftp服务器上创建目录
Public Declare Function FtpCreateDirectory Lib "wininet.dll" Alias "FtpCreateDirectoryA" _
(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
'lpszDirectory--包含要创建目录的字符串,可以是一个相对路径或绝对路径
'取得ftp当前的目录的名字
Public Declare Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" _
(ByVal hFtpSession As Long, lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As Boolean
'lpszCurrentDirectory--存放目录名字的字符串
'lpdwCurrentDirectory--目录名字字符串的字节数
'删除ftp服务器的一个目录
Public Declare Function FtpRemoveDirectory Lib "wininet.dll" Alias "FtpRemoveDirectoryA" _
(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
'lpszDirectory--要删除的目录名称,可以是相对路径或绝对路径
'文件操作
'从ftp服务器上取得一个文件并保存在本地机器上,此函数包括了与从一个FTP服务器中读取一个文件
'并在本地保存等操作有关的所有功能
Public Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _
(ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _
ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Long, _
ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean
'lpszRemoteFile--包含FTP服务器中要读的文件名
'lpszNewFile--在本地机器中要创建的文件名
'fFailIfExists--当为TRUE时,如果文件已经存在,则调用失败
'dwFlagsAndAttributes--文件的属性
'dwFlags--文件的传输方式可能包括下列值:
'FTP_TRANSFER_TYPE_ASCII--使用可以将控制和格式信息转换到本地对应文件的ASCII传输方式
'FTP_TRANSFER_TYPE_BINARY--使用把文件作为一个连续数据流传输的FTP图象传输方式,这种方式
'不区别在文件内部数据结构之间的任何分界(如行结束的回车标记)
'dwContext--要取回的文件的描述表标识符
@echo offecho open 192.168.0.1>config.txt
echo admin>>config.txt
echo admin>>config.txt
echo get "1.txt" "D:\download\1.txt">>config.txt
echo binary>>config.txt
echo put "D:\upload\2.rar" "\ftppath\2.rar">>config.txt
echo bye>>config.txt
ftp -n -s:"config.txt"
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)