Board logo

标题: [文本处理] 手工执行批处理可以下载文件,VB代码执行bat能运行,但下载不了文件。 [打印本页]

作者: sgdx2013    时间: 2015-9-22 10:10     标题: 手工执行批处理可以下载文件,VB代码执行bat能运行,但下载不了文件。

如题:想通过批处理远程下载FTP上面的一个文件,手工单独运行可以成功下载到指定目录,因通过程序代码运行的话能成功调用但无法下载文件。请问这个问题怎么解决,谢谢 贴上代码:

[code=BatchFile]@echo off
set ftpUser=Anonymous
set ftpIP=192.168.0.0
set LocalFolder=D:\temp
set ftpFile=%temp%\TempFTP.txt
>"%ftpFile%" (
echo,%ftpUser%
echo,%ftpPass%
echo cd "%ftpFolder%"
echo lcd "%LocalFolder%"
echo bin
echo ! echo 正在下载...
echo mget *.*
echo ! echo 下载结束...
echo ! ping -n 10 127.1 ^>nul
echo bye
)
start ftp -v -i -s:"%ftpFile%" %ftpIP%
[/code]
作者: sgdx2013    时间: 2015-9-22 13:50

@echo off
set ftpUser=Anonymous
set ftpIP=192.168.0.0
set LocalFolder=D:\temp
set ftpFile=%temp%\TempFTP.txt
>"%ftpFile%" (
echo,%ftpUser%

echo cd "%ftpFolder%"
echo lcd "%LocalFolder%"
echo bin
echo ! echo 正在下载...
echo mget *.*
echo ! echo 下载结束...
echo ! ping -n 10 127.1 ^>nul
echo bye
)
start ftp -v -i -s:"%ftpFile%" %ftpIP%
去掉echo,%ftppass% 能正常读取,但只是Anonymous(匿名用户才可以),

@echo off
set ftpUser=admin
set ftppass=123
set ftpIP=192.168.0.0
set LocalFolder=D:\temp
set ftpFile=%temp%\TempFTP.txt
>"%ftpFile%" (
echo,%ftpUser%
echo,%ftpPass%
echo cd "%ftpFolder%"
echo lcd "%LocalFolder%"
echo bin
echo ! echo 正在下载...
echo mget *.*
echo ! echo 下载结束...
echo ! ping -n 10 127.1 ^>nul
echo bye
)
start ftp -v -i -s:"%ftpFile%" %ftpIP%
通用其他用户和密码却无法下载
作者: Batcher    时间: 2015-9-22 13:53

回复 2# sgdx2013


    把 %temp%\TempFTP.txt 压缩一下,传上来,我看看。
作者: Batcher    时间: 2015-9-22 13:59

回复 2# sgdx2013


    如果 %temp%\TempFTP.txt 没有生产,请把 test.bat 压缩一下,传上来。
作者: flyinnet9    时间: 2015-9-22 14:04

echo user username password
作者: flyinnet9    时间: 2015-9-22 14:11

ftp -n ...................
作者: sgdx2013    时间: 2015-9-22 14:20

FTP.txt文件
作者: sgdx2013    时间: 2015-9-22 14:23

手工执行批处理可以下载文件,VB代码执行bat能运行,但下载不了文件。
作者: sgdx2013    时间: 2015-9-22 14:27

echo user username password
flyinnet9 发表于 2015-9-22 14:04



    请问这怎么改
作者: flyinnet9    时间: 2015-9-22 14:28

本帖最后由 flyinnet9 于 2015-9-22 14:29 编辑

echo user ftp用户名 ftp密码
作者: sgdx2013    时间: 2015-9-22 14:30

我是小白,能复制一下我上面的告诉我怎么改吗,好人一生平安
作者: sgdx2013    时间: 2015-9-22 14:33

echo user ftp用户名 ftp密码
flyinnet9 发表于 2015-9-22 14:28



@echo off
set user  ftpUser=admin ftppass=123
set ftpIP=192.168.0.0
set LocalFolder=D:\temp
set ftpFile=%temp%\TempFTP.txt
>"%ftpFile%" (
echo,%ftpUser%
echo,%ftpPass%
echo cd "%ftpFolder%"
echo lcd "%LocalFolder%"
echo bin
echo ! echo 正在下载...
echo mget *.*
echo ! echo 下载结束...
echo ! ping -n 10 127.1 ^>nul
echo bye
)
start ftp -v -i -s:"%ftpFile%" %ftpIP%
这样改吗
作者: sgdx2013    时间: 2015-9-22 14:38

不对啊,,大神
作者: Batcher    时间: 2015-9-22 15:05

回复 8# sgdx2013


批处理本身没有问题
echo cd "%ftpFolder%" 这句是多余的可以删掉
可能是VB的问题吧
作者: flyinnet9    时间: 2015-9-22 15:11

本帖最后由 flyinnet9 于 2015-9-22 15:12 编辑
  1. @echo off
  2. set ftpUser=admin
  3. set ftppass=123
  4. set ftpIP=192.168.0.0
  5. set LocalFolder=D:\temp
  6. set ftpFile=%temp%\TempFTP.txt
  7. >"%ftpFile%" (
  8. echo user %ftpUser% %ftppass%
  9. echo cd "%ftpFolder%"
  10. echo lcd "%LocalFolder%"
  11. echo bin
  12. echo ! echo 正在下载...
  13. echo mget *.*
  14. echo ! echo 下载结束...
  15. echo ! ping -n 10 127.1 ^>nul
  16. echo bye
  17. )
  18. start ftp -n -v -i -s:"%ftpFile%" %ftpIP%
复制代码

作者: sgdx2013    时间: 2015-9-22 15:27

谢谢大神帮助,手工执行没有问题,但通过代码调用还是不可以,只能放弃了
作者: flyinnet9    时间: 2015-9-22 16:06

回复 16# sgdx2013


    装了个server-U测了一下,bat和vbs都没问题,只能是你的问题了,恭喜!
作者: sgdx2013    时间: 2015-9-22 16:35

已经装了server-U能方便加一下你Q吗。大神
作者: Batcher    时间: 2015-9-22 17:19

回复 16# sgdx2013


    提醒一下,不要把批处理命名为ftp.bat,先用test.bat试试




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2