[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] [已解决]BAT-无法登陆FTP

本帖最后由 chuyizhou 于 2014-1-21 13:01 编辑

大家好,最近新学习批处理,解决了很多问题。可是登陆ftp的问题一直没有找到答案,查了很多资料和帖子,发现大部分都是用下面这段代码登陆的(注:192.168.1.101只是个例子):
  1. @echo off
  2. (
  3.     echo OPEN 192.168.1.101
  4.     echo user
  5.     echo 123456
  6.     echo CD \
  7.     echo PUT "%~1"
  8.     echo BYE
  9. )>1.FTP
  10. FTP -S:1.FTP
复制代码
我在这里有几个问题:
1. open是专门用来进入ftp的命令吗?我在cmd里面输入open 192.168.1.101根本不行,说open不是internal or external的命令,只能用ftp 192.168.1.101。但用了ftp代替open写入上面的代码也行不通。
2. 如果用ftp登陆的话我又不知道怎么指定port,我想ftp /?查用法cmd却说“Unknown host /?“。。。请问怎么去写才好?

我的目的其实很简单,就只要test这个ftp能不能进就行了,或者进去之后在默认的初目录下面dir看看有没有一个test.txt的文件。

顺便问一下,类似 ftp.abcd.com的是不是和192.168.1.101这样的是同一种方式进入的阿?

希望有大神可以帮我解惑!谢谢!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
白天不懂夜的黑,没用过bat不知道bat的猛。

open是专门用来进入ftp的命令吗?

open是FTP内部命令,不能直接在CMD里面执行,试试这样:
开始
运行
cmd
ftp
open 192.168.1.101
1

评分人数

TOP

回复 2# DAIC


    行得通!请问在那里可以指定端口啊?
还有我把代码第6、7行改成echo dir *.txt 之后运行发现黑框闪了一下就消失了,怎么回事啊?
白天不懂夜的黑,没用过bat不知道bat的猛。

TOP

回复 3# chuyizhou


把端口放在IP后面
  1. open 192.168.1.101 12345
复制代码

TOP

回复 4# DAIC
  1. @echo off
  2. (
  3.     echo OPEN 192.168.1.101 21
  4.     echo user
  5.     echo 12345
  6.     echo cd /pub
  7.     echo pwd
  8.     echo BYE
  9. )>1.FTP
  10. FTP -S:1.FTP
复制代码
请问我这个运行之后就只会黑框闪烁一下就不见,是什么情况阿?直接在cmd里面一行行敲是成功的呢……
白天不懂夜的黑,没用过bat不知道bat的猛。

TOP

回复 5# chuyizhou


你加一个put或者get文件的操作吧

TOP

回复 6# DAIC


    我试了一下,用dir也有output了 可是奇怪的是我运行第二遍的时候竟然只有黑框,没有任何output了。。。我加了pause但也没有press any key to continue...出现。。。
白天不懂夜的黑,没用过bat不知道bat的猛。

TOP

回复 7# chuyizhou


不要把批处理命名为ftp.bat
试试test.bat

TOP

回复 8# DAIC


    不可思议!之前确实是test.bat运行的,成功了之后我rename为ftp.bat的。太感谢了。。。这样我已经可以成功测试公司的4个ftp server了。

容我试试看能不能以同样的方式测试有ssh认证的几个sftp server。
白天不懂夜的黑,没用过bat不知道bat的猛。

TOP

回复 9# chuyizhou


    sftp不支持这种方法输入用户名和密码

TOP

回复 10# DAIC


    是的,并不支持。。。出现了下面的提示:
ftp> open 192.168.1.101 22
Connected to 192.168.1.101.
SSH-2.0-OpenSSH_5.2


请问有方法用批处理登陆吗?
白天不懂夜的黑,没用过bat不知道bat的猛。

TOP

回复 11# chuyizhou


    用VBS模拟键盘输入用户名和密码

TOP

回复 12# DAIC


    花了点时间查这个东西,新接触,完全没有意识……这个模拟键盘就是一串事先设置好将要输入的按键的代码是把?我应该把这段代码放在哪个地方去辅助批处理文件进入sftp服务器呢?

比如我要输入密码12345,那我就要

Set objShell = CreateObject("Wscript.Shell")
strCommandLine = "test.bat"        '
objShell.Run(strCommandLine)
set WshShell = CreateObject("WScript.Shell")
WScript.Sleep 3000        '延时3秒
WshShell.SendKeys "1"        '模拟按下 S 键开始安装
WScript.Sleep 300        '延时0.3秒
WshShell.SendKeys "2"
WScript.Sleep 300
WshShell.SendKeys "3"        
WScript.Sleep 300      
WshShell.SendKeys "4"        
WScript.Sleep 300        
WshShell.SendKeys "5"        
WScript.Sleep 300        
WshShell.SendKeys "6"      
WScript.Sleep 300  
WshShell.SendKeys "Enter"
........

请问这个vbs虚拟键盘是怎么用的阿?
白天不懂夜的黑,没用过bat不知道bat的猛。

TOP

回复 12# DAIC


    成功了!

我在test.bat里面写了set /p a=然后再用双击.vbs调用这个bat文件同时sendKey 123456abcdefg,真的出来了!

让我再研究研究 能不能放到登陆sftp的服务器。

我这儿其实有个疑问,我再cmd.exe里面手动登陆我们公司的sftp server的时候会提示下面这个东西,然后就没有然后了,真的可以用虚拟键盘登陆吗?
G:\>ftp
ftp> open sftp.abcd.com 99
Connected to sftp.abcd.com.
SSH-2.0-OpenSSH_5.2
白天不懂夜的黑,没用过bat不知道bat的猛。

TOP

回复 14# chuyizhou


    试试看吧

TOP

返回列表