标题: [网络连接] [已解决]BAT-无法登陆FTP [打印本页]
作者: chuyizhou 时间: 2014-1-20 08:58 标题: [已解决]BAT-无法登陆FTP
本帖最后由 chuyizhou 于 2014-1-21 13:01 编辑
大家好,最近新学习批处理,解决了很多问题。可是登陆ftp的问题一直没有找到答案,查了很多资料和帖子,发现大部分都是用下面这段代码登陆的(注:192.168.1.101只是个例子):- @echo off
- (
- echo OPEN 192.168.1.101
- echo user
- echo 123456
- echo CD \
- echo PUT "%~1"
- echo BYE
- )>1.FTP
- 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这样的是同一种方式进入的阿?
希望有大神可以帮我解惑!谢谢!
作者: DAIC 时间: 2014-1-20 09:37
open是FTP内部命令,不能直接在CMD里面执行,试试这样:
开始
运行
cmd
ftp
open 192.168.1.101
作者: chuyizhou 时间: 2014-1-20 10:24
回复 2# DAIC
行得通!请问在那里可以指定端口啊?
还有我把代码第6、7行改成echo dir *.txt 之后运行发现黑框闪了一下就消失了,怎么回事啊?
作者: DAIC 时间: 2014-1-20 10:40
回复 3# chuyizhou
把端口放在IP后面复制代码
作者: chuyizhou 时间: 2014-1-20 10:58
回复 4# DAIC - @echo off
-
- (
-
- echo OPEN 192.168.1.101 21
-
- echo user
-
- echo 12345
-
- echo cd /pub
-
- echo pwd
-
- echo BYE
-
- )>1.FTP
-
- FTP -S:1.FTP
复制代码
请问我这个运行之后就只会黑框闪烁一下就不见,是什么情况阿?直接在cmd里面一行行敲是成功的呢……
作者: DAIC 时间: 2014-1-20 11:07
回复 5# chuyizhou
你加一个put或者get文件的操作吧
作者: chuyizhou 时间: 2014-1-20 12:19
回复 6# DAIC
我试了一下,用dir也有output了 可是奇怪的是我运行第二遍的时候竟然只有黑框,没有任何output了。。。我加了pause但也没有press any key to continue...出现。。。
作者: DAIC 时间: 2014-1-20 12:30
回复 7# chuyizhou
不要把批处理命名为ftp.bat
试试test.bat
作者: chuyizhou 时间: 2014-1-20 13:12
回复 8# DAIC
不可思议!之前确实是test.bat运行的,成功了之后我rename为ftp.bat的。太感谢了。。。这样我已经可以成功测试公司的4个ftp server了。
容我试试看能不能以同样的方式测试有ssh认证的几个sftp server。
作者: DAIC 时间: 2014-1-20 13:30
回复 9# chuyizhou
sftp不支持这种方法输入用户名和密码
作者: chuyizhou 时间: 2014-1-20 14:24
回复 10# DAIC
是的,并不支持。。。出现了下面的提示:
ftp> open 192.168.1.101 22
Connected to 192.168.1.101.
SSH-2.0-OpenSSH_5.2
请问有方法用批处理登陆吗?
作者: DAIC 时间: 2014-1-20 14:52
回复 11# chuyizhou
用VBS模拟键盘输入用户名和密码
作者: chuyizhou 时间: 2014-1-21 09:05
回复 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虚拟键盘是怎么用的阿?
作者: chuyizhou 时间: 2014-1-21 09:23
回复 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
作者: DAIC 时间: 2014-1-21 09:48
回复 14# chuyizhou
试试看吧
作者: chuyizhou 时间: 2014-1-21 13:01
回复 15# DAIC
谢谢你,还是不能登陆。因为手动登陆都不行。问了开发,说因为是不同的协议,用cmd命令行是无法登陆的,所以我准备另起一个帖子问问看有没有什么方法,能在不安装软件插件的前提下用batch来登陆。
谢谢你的指导,受益匪浅阿!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |