中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 14:39
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何以批处自动登入oracle server (telnet) 查看 960 回复 13
楼 主 如何以批处自动登入oracle server (telnet) 发表于 2008-02-20 14:50 ·  中国 香港
初级用户
★★
积分 125
发帖 56
注册 2008-02-20 14:01
18年会员
UID 111054
性别 男
状态 离线
我又发现了一个问题, 是我要登入server,然后用tail log |grep location > /temp/log.txt
跟着用ftp 找下来, 问题来了, 用以下可以自动登入oracle 和登出

echo open %1>temp.ftp
echo user operator operator123>>temp.ftp
echo get /tmp/log.txt>>temp.ftp
echo close>>temp.ftp
echo bye>>temp.ftp
ftp -n -s:temp.ftp

但以下这个就要以人手登入, 无法自动化
> grepdata srv1
telnet %1
login operator operator123
tail log |grep location > /temp/log.txt
bye
pause

各位,请问可以帮我吗?

[ Last edited by xmi on 2008-2-21 at 08:24 PM ]
2 发表于 2008-02-20 17:04 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
TELNET不能读文件。换NC去.
3 发表于 2008-02-20 19:13 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
VBS的SendKeys能否满足要求?


'假设主机地址是ABC
'假设用户名是DEF
'假设密码是GHI
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "telnet ABC"
WScript.Sleep(5000)
WshShell.SendKeys "DEF{enter}"
WScript.Sleep(1000)
WshShell.SendKeys "GHI{enter}"
'需要执行什么命令就SendKeys
4 发表于 2008-02-21 12:58 ·  中国 香港
初级用户
★★
积分 125
发帖 56
注册 2008-02-20 14:01
18年会员
UID 111054
性别 男
状态 离线
Originally posted by HAT at 2008-2-20 07:13 PM:
VBS的SendKeys能否满足要求?


'假设主机地址是ABC
'假设用户名是DEF
'假设密码是GHI
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "tel ...


是不是這樣?
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "telnet oracle"
WScript.Sleep(5000)
WshShell.SendKeys "tail log |grep location > /temp/log.txt{enter}"
WScript.Sleep(1000)
WshShell.SendKeys "bye{enter}"
'需要執行什麼命令就SendKeys

sleep(5000) ---->停5000秒?

[ Last edited by xmi on 2008-2-21 at 10:00 PM ]
5 发表于 2008-02-21 12:59 ·  中国 香港
初级用户
★★
积分 125
发帖 56
注册 2008-02-20 14:01
18年会员
UID 111054
性别 男
状态 离线
Originally posted by knoppix7 at 2008-2-20 05:04 PM:
TELNET不能读文件。换NC去.


請問什麼是nc? 我只懂簡單的bat......:(
6 发表于 2008-02-21 13:02 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
NetCat.
自己GOOGLE之
7 发表于 2008-02-21 13:05 ·  中国 香港
初级用户
★★
积分 125
发帖 56
注册 2008-02-20 14:01
18年会员
UID 111054
性别 男
状态 离线
Originally posted by knoppix7 at 2008-2-21 01:02 PM:
NetCat.
自己GOOGLE之


多謝... 我試一試.....
8 发表于 2008-02-22 13:34 ·  中国 香港
初级用户
★★
积分 125
发帖 56
注册 2008-02-20 14:01
18年会员
UID 111054
性别 男
状态 离线
Originally posted by HAT at 2008-2-20 07:13 PM:
VBS的SendKeys能否满足要求?


'假设主机地址是ABC
'假设用户名是DEF
'假设密码是GHI
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "tel ...


HAT兄, 我試過了, 成功!....以下是我的code:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "telnet oracle"
WScript.Sleep(5000)
WshShell.SendKeys "operator{enter}"
WScript.Sleep(5000)
WshShell.SendKeys "password{enter}"
WScript.Sleep(5000)
WshShell.SendKeys "tail log |grep location > /temp/log.txt{enter}"
WScript.Sleep(1000)
WshShell.SendKeys "exit{enter}"
'需要執行什麼命令就SendKeys


成功了! 但就是又有一問題, 我想問如個server名每次都不一樣, 可以再告之可如何更改......

如: 個看到file是123.oracle ---- 那這個就> telnet oracle
123.abc ---- 那這個就> telnet abc

簡單的說如要telnet後是可變數.....

謝謝....

[ Last edited by xmi on 2008-2-22 at 04:27 PM ]
9 发表于 2008-02-24 18:17 ·  中国 香港 环球全域电讯
初级用户
★★
积分 125
发帖 56
注册 2008-02-20 14:01
18年会员
UID 111054
性别 男
状态 离线
有人可以教我嗎?
我試過以變數輸入,但不成功...:(

>sendkeys abc

coding

Set WshShell = CreateObject("WScript.Shell")
a=%1
WshShell.Run "telnet %1"
WScript.Sleep(1000)
WshShell.SendKeys "operator{enter}"
WScript.Sleep(1000)
WshShell.SendKeys "password{enter}"
WScript.Sleep(5000)
WshShell.SendKeys "tail log |grep location > /temp/log.txt{enter}"
WScript.Sleep(5000)
WshShell.SendKeys "exit{enter}"
10 发表于 2008-02-24 18:25 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
NC.exe IP 端口<命令文件
11 发表于 2008-02-24 18:42 ·  中国 香港 环球全域电讯
初级用户
★★
积分 125
发帖 56
注册 2008-02-20 14:01
18年会员
UID 111054
性别 男
状态 离线
我在這兒http://netcat.sourceforge.net/download.php下載了這個netcap, 我看了也不懂. 請問你用那一個版本?
12 发表于 2008-02-24 19:21 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
13 发表于 2008-02-24 21:19 ·  中国 香港 环球全域电讯
初级用户
★★
积分 125
发帖 56
注册 2008-02-20 14:01
18年会员
UID 111054
性别 男
状态 离线
下載了師兄的文件. 謝謝.
我試了在網上找一些教學指南, 在這兒http://hedong.3322.org/archives/000335.html 有著一些指導, 但它寫著:


三.telnet服务器
nc有一个-e的选项,用来指定在连接后执行的程序.
在windows平台上可以指定-e cmd.exe如果是98就指定command.exe.linux则指定-e bash,或者任何你喜欢的shell,或者是你自己编写的程序,通常是做为后门:p
指定-e的效果是由你指定的程序代替了nc自己来接受另一端的输入,并把输入(命令)后反馈的结果显示到另一端.
server: nc -l -p 1234 -e bash
client: nc 192.168.0.1 1234 就可以远程登陆server了
其实我们不一定非要在server端指定-e,也可以在client端指定.
server: nc -l -p 1234
client: nc -e 192.168.0.1 1234 .这样,就相当于在server上远程登陆client了.我前面说过,有关client和server的区分是没有什么意义的.谁做为telnet server的标准只有一个,谁执行了-e .


好像是要在server和client都要做個動作, 但我只在win2000下telnet到server, 不能在server那兒set個port的..

另也在http://www.hackhome.com/InfoView/Article_30398.html看到
绑定端口等待连接:
nc -l -p port
参数:
-e prog 程序重定向,一旦连接,就执行


那這個nc命令是不是很危險的?可否請告知這個如蠢的我.
14 发表于 2008-02-25 01:54 ·  中国 宁夏 银川 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
网上nc的资料一搜一大把的,看了后多试试就试出来了哦
论坛跳转: