kemyliu 发表于 2012-7-24 13:24:37

NCFTPPUT运行DOS CMD回显问题

本帖最后由 kemyliu 于 2012-7-24 13:28 编辑

亲们,现在遇到一个DOS CMD回显问题,请各位大大帮忙。我的代码如下:#include <Constants.au3>
Dim $user,$password,$ftp,$dir,$sources,$ID,$text
$user="user"
$password="pass123"
$ftp="192.168.0.3"
$dir="\VBMFolder\VBM"
$sources="H:\image\*.*"
;~ $ID=Run(@ComSpec & " /c upload.bat","",@SW_SHOW)
;~ $ID=Run(@ComSpec & " /c " &'"NCFTPPut -R -v -m -u "'&$user&'" -p "'&$password&'" "'& $ftp&'" "'&$dir&'" '&$sources&'""', "", @SW_SHOW, $STDERR_CHILD + $STDOUT_CHILD)
$ID=Run('NCFTPPut -R -m -u "'&$user&'" -p "'&$password&'" "'& $ftp&'" "'&$dir&'" '&$sources&'"', "", @SW_SHOW,$STDERR_CHILD + $STDOUT_CHILD)
While 1
        $text &= StdoutRead($ID)
    If @error Then ExitLoop
        MsgBox(0,"TT",$text)
        Sleep(1000)
WEnd遇到的问题是Run()只要加了$STDERR_CHILD + $STDOUT_CHILD参数运行窗口就没有输出提示,但确定NCFTPPut是有正常运行,FTP上传文件也在正常进行;不加$STDERR_CHILD + $STDOUT_CHILD参数可以看到有输出。现在需要大家帮忙如何能实时获得NCFTPPut的输出数据。附NCFTP下载地址:
http://www.ncftp.com/download/
ftp://ftp.ncftp.com/ncftp/binaries/Setup%20NcFTP%203.2.5.msi
请各位大大帮忙!!

NcFTP:灵活的 FTP 客户端

kemyliu 发表于 2012-7-24 16:36:12

各位大大们,支持一下,帮忙解决一下,多谢了!

kemyliu 发表于 2012-7-25 08:44:21

诚恳的期待有高人出现!

qint 发表于 2012-7-25 16:36:24

$Dos_script = "ncftpls.exe -u ????? -p ????? -1 ftp://192.168.11.??/./"

$foo = Run(@ComSpec & " /c " & $Dos_script, "", @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD)
ProcessWaitClose($foo)
$Out_msg = StdoutRead($foo)

msgbox(0,"$Out_msg",$Dos_script & @CRLF & $Out_msg)

kemyliu 发表于 2012-7-26 11:11:15

回复 4# qint
如此看来只能是等待上传完毕才可以,不能做到实时获得CMD窗口信息。

qint 发表于 2012-7-26 21:33:27

au3本来可以实现NcFtp的FTP功能,这样就可实时输出每个文件的上传下载状态,而不必待所有完成后返回结果。
自动化讲求的是最后结果,过程无须人工干预。如果要人工操作查看实时进度,用一个FTP客户端操作不是更好?
主要看你要达到什么效果。
页: [1]
查看完整版本: NCFTPPUT运行DOS CMD回显问题