标题: [文件操作] 求助批处理怎样把字符串直接填到下个语句的需要的地方? [打印本页]
作者: ghj7205 时间: 前天 13:36 标题: 求助批处理怎样把字符串直接填到下个语句的需要的地方?
是某个工具,分两次执行,我嫌麻烦,准备一步到位,请教下:
echo sh.SendKeys "cat /var/tel_passwd | head -n 2 | tail -n 1 | cut -d : -f 2{ENTER}" >>telnet_tmp.vbs
这时得到"XXXXXXXX"字符串,怎样把这字符串直接填到下个语句的需要的地方?- arp -d
- echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs
- echo WScript.Sleep 300 >>telnet_tmp.vbs
- echo sh.SendKeys "open 192.168.1.1{ENTER}" >>telnet_tmp.vbs
- echo WScript.Sleep 300 >>telnet_tmp.vbs
- echo sh.SendKeys "useradmin{ENTER}" >>telnet_tmp.vbs
- echo WScript.Sleep 1000 >>telnet_tmp.vbs
- echo sh.SendKeys "useradmin{ENTER}" >>telnet_tmp.vbs
- echo WScript.Sleep 300 >>telnet_tmp.vbs
- echo sh.SendKeys "cat /var/tel_passwd | head -n 2 | tail -n 1 | cut -d : -f 2{ENTER}" >>telnet_tmp.vbs
- echo WScript.Sleep 300 >>telnet_tmp.vbs
- echo sh.SendKeys "root{ENTER}" >>telnet_tmp.vbs
- echo WScript.Sleep 1000 >>telnet_tmp.vbs
- echo sh.SendKeys "XXXXXXXX{ENTER}" >>telnet_tmp.vbs
- echo WScript.Sleep 300 >>telnet_tmp.vbs
复制代码
作者: ghj7205 时间: 前天 13:37
感谢大家
作者: czjt1234 时间: 前天 15:53
得到"XXXXXXXX"字符串
哪里得到的?完全看不出来
作者: ghj7205 时间: 前天 16:10
得到"XXXXXXXX"字符串
哪里得到的?完全看不出来
czjt1234 发表于 2024-12-20 15:53
运行第10句后会在CMD窗口显示运行结果,就是一个字符串,“root”后换行需要填写密码,这个字符串就是密码
作者: ghj7205 时间: 前天 18:01
得到"XXXXXXXX"字符串
哪里得到的?完全看不出来
czjt1234 发表于 2024-12-20 15:53
这是第一个运行BAT
arp -d
echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "useradmin{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 1000 >>telnet_tmp.vbs
echo sh.SendKeys "abcd{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "cat /var/tel_passwd | head -n 2 | tail -n 1 | cut -d : -f 2{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
start telnet
cscript //nologo telnet_tmp.vbs
del telnet_tmp.vbs
运行结果是zqg93dkych7x7
这是第二个BAT
arp -d
echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "open 192.168.1.1{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys "root{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 1000 >>telnet_tmp.vbs
echo sh.SendKeys "zqg93dkych7x7{ENTER}" >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
作者: aloha20200628 时间: 前天 20:03
本帖最后由 aloha20200628 于 2024-12-20 22:12 编辑
回复 1# ghj7205
以下代码存为 test.bat 运行,其中改变了临时创建 *.vbs 脚本的方法,调用 sed.exe(与楼主vbs脚本中采用的 cat/cut/.. 同属gnu系列工具)直接分割当前批处脚本(自动匹配各段首尾标识行)即可...
中间单独运行 cat ... cut ... 以便回收其密码生成值 %p%,并用 sed.exe 替换到第二段 vbs 脚本所需的*字段位置...- @echo off &setlocal
- arp -d
- sed.exe -n "/'' telnet_tmp2.vbs/I,/'' end_1/I p" "%~f0">telnet_tmp1.vbs
- start "" telnet
- cscript //nologo telnet_tmp1.vbs
- cat /var/tel_passwd | head -n 2 | tail -n 1 | cut -d : -f 2>telnet_tmp0.vbs
- set/p "p="<telnet_tmp0.vbs
- sed.exe -n "/'' telnet_tmp2.vbs/I,/'' end_2/I p" "%~f0"|sed.exe -r "s/\*/%p%/">telnet_tmp2.vbs
- arp -d
- cscript //nologo telnet_tmp2.vbs
- del /q "telnet_tmp?.vbs" &pause&exit/b
-
- '' telnet_tmp1.vbs
- set sh=WScript.CreateObject("WScript.Shell")
- WScript.Sleep 300
- sh.SendKeys "open 192.168.1.1{ENTER}"
- WScript.Sleep 300
- sh.SendKeys "useradmin{ENTER}"
- WScript.Sleep 1000
- sh.SendKeys "abcd{ENTER}"
- WScript.Sleep 300
- '' end_1
-
- '' telnet_tmp2.vbs
- set sh=WScript.CreateObject("WScript.Shell")
- WScript.Sleep 300
- sh.SendKeys "open 192.168.1.1{ENTER}"
- WScript.Sleep 300
- sh.SendKeys "root{ENTER}"
- WScript.Sleep 1000
- sh.SendKeys "*{ENTER}"
- WScript.Sleep 300
- '' end_2
复制代码
作者: aloha20200628 时间: 前天 21:22
回复 5# ghj7205
订正了6楼代码,改为用 sed.exe 自动匹配首尾标识行来切割当前批处脚本以分别生成两个 vbs 脚本...
作者: ghj7205 时间: 前天 22:22
好的,我明天试试看,谢谢指教🤝
作者: ghj7205 时间: 半小时前
回复 ghj7205
订正了6楼代码,改为用 sed.exe 自动匹配首尾标识行来切割当前批处脚本以分别生成两个 v ...
aloha20200628 发表于 2024-12-20 21:22
运行不下去哦
窗口显示Microsotf Telnet>
就停止了
怎么图片发送不了,少于50k了啊?说不能保存
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |