Board logo

标题: [文本处理] 如何实现从ping命令结果中查找指定字符串并以响铃提示查找成功? [打印本页]

作者: fans60    时间: 2016-3-8 21:02     标题: 如何实现从ping命令结果中查找指定字符串并以响铃提示查找成功?

本帖最后由 pcl_test 于 2016-3-8 21:13 编辑

ping命令 查寻特征字符串,如果查找成功就响铃提示,现在的结果是不管成功失败都响铃
  1. for /L %i in (1,1,5) do ping -a -n 1 192.168.1.%i|find /i "mypc" >null && echo ^G
复制代码

作者: fans60    时间: 2016-3-8 21:22

我又将上面的代码复制一遍在cmd中运行,发现都不响铃。 要将^GS删除,然后按alt+7, 这样修改过的代码运行后就碰到我要问的问题。
作者: fans60    时间: 2016-3-9 00:00

回复 3# happy886rr

试了,还是不行
作者: happy886rr    时间: 2016-3-9 00:12

本帖最后由 happy886rr 于 2016-3-9 10:12 编辑

回复 4# fans60
试下这个屡试屡爽。
  1. @echo off
  2. for /L %%i in (2,1,5) do (
  3. ping -a -n 1 192.168.1.%%i|find /i "%Computername%" && goto ring
  4. )
  5. echo IP地址无法访问
  6. pause>nul
  7. exit
  8. :ring
  9. echo Ring!Ring!Ring!
  10. pause>nul
复制代码
另外192.168.1.1是路由器的地址,ping过去会卡壳
始步从2走好些.你的意思是要这个
  1. for /L %%i in (1,1,5) do (ping -a -n 1 192.168.1.%%i|find /i "%Computername%" && echo ^G)
复制代码

作者: codegay    时间: 2016-3-9 00:51

用python
print("\a")
作者: codegay    时间: 2016-3-9 00:52

回复 4# happy886rr


    CMD 上按crtl + G
作者: codegay    时间: 2016-3-9 01:04

http://www.bathome.net/thread-12347-1-2.html
扩展ASCII码字符集0x00~0xff 批处理获取函数
作者: 依山居    时间: 2016-3-9 01:51

python
  1. os.system("echo \a")
复制代码

作者: CrLf    时间: 2016-3-9 02:46

  1. mshta http://bathome.net/s/hta/ String.fromCharCode(7)|more
复制代码

作者: fans60    时间: 2016-3-9 08:50

回复 4# happy886rr


两个都试了下,上面那个放在bat中执行,最后确实显示了字符,我要的是下面那种,但是还是一样,每次都响铃,你成功了吗?
作者: fans60    时间: 2016-3-9 08:57

回复 9# CrLf


这个好像不错,我看看用这个来响铃,但是我贴的那个为什么达不到效果呢?
作者: codegay    时间: 2016-3-9 09:15

回复 11# fans60


    字符被转义了。你可以mshta http://bathome.net/s/hta/ String.fromCharCode(7)>x.txt
然后每次使用时type x.txt
作者: happy886rr    时间: 2016-3-9 15:29

回复 10# fans60
加了vbs模拟按键,ping到了一定要跳出来,否则还在循环浪费时间。
这下基本没问题了。就是那几个按键代码"^{ESC}M"、"^G"你根据自己当前的响铃按键自己改
  1. @echo off
  2. for /L %%i in (2,1,5) do (
  3. ping -a -n 1 192.168.1.%%i|find /i "%Computername%" && goto ring
  4. )
  5. exit
  6. :ring
  7. mshta "vbscript:createobject("wscript.shell").sendkeys("^{ESC}M")(window.close)"
  8. mshta "vbscript:createobject("wscript.shell").sendkeys("^G")(window.close)"
  9. pause>nul
复制代码

作者: fans60    时间: 2016-3-9 20:55

回复 13# happy886rr

嗯, 谢了,中断for循环我也试过,一开始用的goto(在cmd中,没有放在bat中),失败了。你的可以成功推出for循环,但是还是没有响铃。
作者: happy886rr    时间: 2016-3-9 21:04

回复 14# fans60
最终就在按键代码上,
  1. mshta "vbscript:createobject("wscript.shell").sendkeys("^{ESC}M")(window.close)"
  2. mshta "vbscript:createobject("wscript.shell").sendkeys("^G")(window.close)"
复制代码
这两行的按键发送是成功,我都用它来自动打字。只是不知你电脑得响铃快捷键是怎么设置的。ctrl+G还是其他键响铃。for循环绝对没问题,放bat里运行才行。
就是按键代码你稍微改改就能打开响铃了。
作者: fans60    时间: 2016-3-9 22:10

回复 15# happy886rr


    是放在bat中执行的,但是还是没响铃。我电脑cmd下响铃键确实是Ctrl+G。能不能把你成功的bat文件附件发给我一份,谢了。
作者: WHY    时间: 2016-3-9 22:56

"纯正的批处理"
echo;
作者: fans60    时间: 2016-3-9 23:21

回复 17# WHY


  谢了,这个确实能用
作者: pcl_test    时间: 2016-3-9 23:28

  1. @echo off
  2. for /f "delims=Y" %%a in ('cmd /u /c echo 备') do set "bel=%%a"
  3. echo;%bel%
  4. pause
复制代码

作者: happy886rr    时间: 2016-3-9 23:35

回复 17# WHY
好一个看不见的07,这招倒是省的按键了.
作者: fans60    时间: 2016-3-10 09:23

回复 19# pcl_test


    最后为什么会输出Y呢?
作者: qzwqzw    时间: 2025-3-7 09:20

本帖最后由 qzwqzw 于 2025-3-7 09:23 编辑

前不久手痒
翻出来很久前写的一个ping扩展脚本
调试过程中发现一个未注意到的小问题
之前 echo  是通过主机蜂鸣器响铃的
现在我的win10电脑上是通过声卡+扬声器响铃的
这个可以理解,毕竟现代主机已经找到不到蜂鸣器了

但是它发出来的的声调和蜂鸣器发出来的声音完全不同
不是那种短促单一的高频音调
是更加悠长且抑扬顿挫的多个音调
而且会将多个连续的响铃字符    转成一声响铃
这直接让我的程序无法区分多响铃和单响铃
程序功能被系统强制阉割

我另外也测试了win10笔记本
也是使用声卡扬声器发声
但是声调和win10台式机的完全不同
更接近蜂鸣器发出来的短促、单一、高调的bee bee声
而且也可以区分多响铃和单响铃

不知道大家还有谁遇到了跟我一样的问题?
作者: 523066680    时间: 2025-3-7 09:37

回复 22# qzwqzw


    我这里echo ^G 报的是这个声音 "C:\Windows\Media\Windows Foreground.wav"

传一份网盘:
链接:https://pan.baidu.com/s/1KlrKrNHurD3_BJ_702Lx5Q
提取码:60o7
作者: qzwqzw    时间: 2025-3-7 09:44

回复  qzwqzw


    我这里echo ^G 报的是这个声音 "C:\Windows\Media\Windows Foreground.wav"

传一 ...
523066680 发表于 2025-3-7 09:37



    确实是这个声音

看看在哪里可以配置它
作者: qzwqzw    时间: 2025-3-7 13:34

本帖最后由 qzwqzw 于 2025-3-7 14:10 编辑

目前搜索结果,
在windows10的设置-主题-声音-程序事件有对应的媒体文件配置
但是没有针对这个CMD下响铃字符的配置

经过跟踪分析
CMD先会在注册表中的以下位置寻找媒体文件,默认是前景声音 Windows Foreground.wav
计算机\HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemHand\.Current
如果找不到这默认键值或对应的媒体文件,则CMD还会找下面这个键值
计算机\HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\.Default\.Current
其中的默认值是背景声音文件 C:\Windows\Media\Windows Background.wav
如果还找不到这默认键值或对应的媒体文件,则系统会使用声卡模拟发出传统的bee声
只是这个bee声频率会低很多,介于400~500Hz之间




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