|
本帖最后由 ac5474012 于 2011-8-4 10:26 编辑
答我找到原因了,不说了,看代码吧。
将这两句 $path=$path&$aFile[$i][0]&""
ftp($server,$name,$pass,$port,$path)
换成ftp($server,$name,$pass,$port,$path&$aFile[$i][0]&"")
#Region AutoIt3Wrapper 预编译参数(常用参数)
#AutoIt3Wrapper_Icon= ;图标,支持EXE,DLL,ICO
#AutoIt3Wrapper_OutFile= ;输出文件名
#AutoIt3Wrapper_OutFile_Type=exe ;文件类型
#AutoIt3Wrapper_Compression=4 ;压缩等级
#AutoIt3Wrapper_UseUpx=y ;使用压缩
#AutoIt3Wrapper_Res_Comment= ;注释
#AutoIt3Wrapper_Res_Description= ;详细信息
#AutoIt3Wrapper_Res_Fileversion= ;文件版本
#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=p ;自动更新版本
#AutoIt3Wrapper_Res_LegalCopyright= ;版权
#AutoIt3Wrapper_Change2CUI=N ;修改输出的程序为CUI(控制台程序)
;#AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer% ;自定义资源段
;#AutoIt3Wrapper_Run_Tidy= ;脚本整理
;#AutoIt3Wrapper_Run_Obfuscator= ;代码迷惑
;#AutoIt3Wrapper_Run_AU3Check= ;语法检查
;#AutoIt3Wrapper_Run_Before= ;运行前
;#AutoIt3Wrapper_Run_After= ;运行后
#EndRegion AutoIt3Wrapper 预编译参数设置完成
#cs ____________________________________
Au3 版本: 3.3.7.2
脚本作者: guoji
Email:
QQ/TM:
脚本版本:
脚本功能: 用FTP协议同步服务器的信息
#ce _______________脚本开始_________________
#include <FTPEx.au3>
#include <Array.au3>
Local $path
$server = '192.168.7.100' ;服务器
$name = 'sync' ;用户名
$pass = 'adminootc' ;密码
$Port = '2121' ;端口
$path = "c:\a1" ;路径
ftp($server,$name,$pass,$port,$path)
Func ftp($server,$name,$pass,$port,$path)
$Open = _FTP_Open('MyFTP') ;打开一个FTP会话
$Conn = _FTP_Connect($Open,$server,$name,$pass,0,$port) ;连接到ftp服务器
_FTP_DirSetCurrent($Conn, $path)
$aFile = _FTP_ListToArrayEx($Conn,0,0) ;列目录(0=文件和目录,1=目录,2=文件)(格式0=mm/dd/yyyy,1=yyyy/mm/dd)
_ArrayDisplay($aFile)
MsgBox(0,"显示","共(" & $aFile[0][0] & ")个")
;~ MsgBox(0,"$aFile[$i][0个]文件名",$aFile[0][0])
for $i = 1 to $aFile[0][0]
If $aFile[$i][2] = 16 And $aFile[$i][0]<>"." And $aFile[$i][0]<>".." Then
;~ $path=$path&$aFile[$i][0]&""
MsgBox(0,"$path",$path&$aFile[$i][0]&"")
ftp($server,$name,$pass,$port,$path&$aFile[$i][0]&"")
EndIf
;~ MsgBox(0,"显示","名 = " & $aFile[$i][0] & @CRLF & $aFile[$i][1] & @CRLF & $aFile[$i][2] & @CRLF & $aFile[$i][3] & @CRLF & $aFile[$i][4] & @CRLF & $aFile[$i][5])
next
;$aFile[$i][0个]文件名
;$aFile[$i][1]文件大小
;$aFile[$i][2]文件属性
;$aFile[$i][3]文件修改日期-时间
;$aFile[$i][4]文件创作日期-时间
;$aFile[$i][5]文件通入日期-时间
$Ftpc = _FTP_Close($Open) ;关闭 _FTP_Open 打开的回话
EndFunc
问我看了 遍历搜索文件
所以想做一个FTP的遍历搜索文件的脚本,也可以是同步文件,我最终是要做同步文件的。但是我做到一半发现有问题。
问题:
1.在调用自己后,$path 变量的数值被保留下来了,关键的问题是如果不让$path被保留。
请帮我看看#include <FTPEx.au3>
#include <Array.au3>
$server = '192.168.1.100' ;服务器
$name = '' ;用户名
$pass = '' ;密码
$Port = '21' ;端口
$path = "c:\a1" ;路径
ftp($server,$name,$pass,$port,$path)
Func ftp($server,$name,$pass,$port,$path)
$Open = _FTP_Open('MyFTP') ;打开一个FTP会话
$Conn = _FTP_Connect($Open,$server,$name,$pass,0,$port) ;连接到ftp服务器
_FTP_DirSetCurrent($Conn, $path)
$aFile = _FTP_ListToArrayEx($Conn,0,0) ;列目录(0=文件和目录,1=目录,2=文件)(格式0=mm/dd/yyyy,1=yyyy/mm/dd)
_ArrayDisplay($aFile)
MsgBox(0,"显示","共(" & $aFile[0][0] & ")个")
;~ MsgBox(0,"$aFile[$i][0个]文件名",$aFile[0][0])
for $i = 1 to $aFile[0][0]
If $aFile[$i][2] = 16 And $aFile[$i][0]<>"." And $aFile[$i][0]<>".." Then
$path=$path&$aFile[$i][0]&""
ftp($server,$name,$pass,$port,$path)
MsgBox(0,"$path",$path)
EndIf
;~ MsgBox(0,"显示","名 = " & $aFile[$i][0] & @CRLF & $aFile[$i][1] & @CRLF & $aFile[$i][2] & @CRLF & $aFile[$i][3] & @CRLF & $aFile[$i][4] & @CRLF & $aFile[$i][5])
next
;$aFile[$i][0个]文件名
;$aFile[$i][1]文件大小
;$aFile[$i][2]文件属性
;$aFile[$i][3]文件修改日期-时间
;$aFile[$i][4]文件创作日期-时间
;$aFile[$i][5]文件通入日期-时间
$Ftpc = _FTP_Close($Open) ;关闭 _FTP_Open 打开的回话
EndFunc
|
|