Board logo

标题: 大家好,关于防火墙禁止入站的,有偿求助30R [打印本页]

作者: 前尘为谁    时间: 2021-8-19 10:16     标题: 大家好,关于防火墙禁止入站的,有偿求助30R

目的:想禁止一个软件的防火墙入站,当前可以实现知道它安装目录进行禁用创建,如下
  1. netsh advfirewall firewall add rule name=”ceshi” dir=in program= "%SystemDrive%\Program Files\Tencent\QQBrowser\QQBrowser.exe" action=block
复制代码
%SystemDrive%\Program Files\Tencent\QQBrowser\QQBrowser.exe这个路径可能存在不同的盘中。
假如这个软件假如安装的不是在C盘,是在其他盘那就无法实现了,于是我想到通过该软件的注册表的键值可以读取到具体的路径如下,以IE为例
  1. reg query "HKEY_CLASSES_ROOT\Applications\iexplore.exe\shell\open\command"
复制代码
可以得到精确的路径:C:\Program Files\Internet Explorer\IEXPLORE.EXE
这样就能获取到任意安装该软件的具体位置,现在遇到的问题是怎么把第二个得出的变量放到第一个命令中,不知道怎么实现,求大佬指点迷津。

微信:small-whispers719
QQ:836175733
感谢各位,感谢批处理之家,祝越办越好。
作者: 前尘为谁    时间: 2021-8-19 11:22

谢谢大神,搞定了
作者: 前尘为谁    时间: 2021-8-19 14:55

  1. /*&cls&echo off
  2. rem 编码ANSI
  3. set "regpath=HKEY_CLASSES_ROOT\Applications\iexplore.exe\shell\open\command"
  4. for /f "delims=" %%a in ('reg query "%regpath%"^|find "默认"^|cscript -nologo -e:jscript "%~f0"') do set "exefile=%%a"
  5. echo;"%exefile%"
  6. if not defined exefile (echo;提取路径失败&pause&exit)
  7. netsh advfirewall firewall add rule name=”ceshi” dir=in program= "%exefile%" action=block
  8. pause
  9. exit
  10. */
  11. var m=WSH.StdIn.ReadLine().match(/[A-Z]:.+?\.exe/i);
  12. if(m){WSH.echo(m[0]);}
复制代码
分享下大神的解决方案,供大家参考




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