无忧启动论坛

标题: bat纯批处理进程通信&局域网通信 [打印本页]

作者: 2198114498    时间: 2022-6-11 20:12
标题: bat纯批处理进程通信&局域网通信
本帖最后由 2198114498 于 2022-6-11 23:16 编辑

需要两个批处理窗口交互数据,自己原来是用读写临时文件的方法。
最近接触到注册表,测试了下,读写文件比注册表快很多。

搜索学习的过程,又发现了管道通信的方法,
  1. @echo off
  2. if "%1"=="" title 0&%0 1|%0 2
  3. if "%1"=="1" title 1&goto loop
  4. if "%1"=="2" title 2&goto loop2

  5. :loop
  6. <nul set /p=loop
  7. ping 127.1 -n 2 >nul
  8. <nul set /p=loop1
  9. ping 127.1 -n 2 >nul
  10. echo 12345
  11. ping 127.1 -n 2 >nul
  12. goto loop

  13. :loop2
  14. set /p input=
  15. if "%input%"=="loop" (
  16. <nul set /p= loop2
  17. ) else (
  18. <nul set /p= loop3
  19. )
  20. echo=
  21. goto loop2
复制代码

已基本搞明白交互过程,但是窗口1自己无法输出,只能发数据到窗口2处理后发回窗口1,
而窗口2却是隐藏的,又无法输入,希望有人能教我这种方法有办法显示双窗口可输入交互的吗?

同时又搜到B站的同名视频,视频介绍是:
纯批处理本机多进程通信或者局域网通信,无第三方,无临时文件,非共享文件,不过目前只支持英文

看视频应该是我需要的,但是主播没有分享文件,也搜不到类似的,所以来求助,
这两个方法看到了就想学到,希望哪位大神指点一下,先谢了!



作者: nttwqz    时间: 2022-6-11 21:25
还真没研究过类似内容,什么事情需要多窗口多进程甚至是局域网其它批处理互相通信?
作者: 2198114498    时间: 2022-6-11 22:39
nttwqz 发表于 2022-6-11 21:25
还真没研究过类似内容,什么事情需要多窗口多进程甚至是局域网其它批处理互相通信?

谢谢回复!
最初我需要某些程序开机自动运行,但是有些需要管理员权限,我放在A.bat,其它放在B.bat,但是AB又有互相依赖的,我通过读写临时文件判断哪些程序可以运行了,这不过是个简单的后台交互,可能有更好方法我没想到。
然后现在看到一些新奇的方法,就想到原来的脚本是否可以改进,或者就是单纯学习,至于其它能用的场景,学会了才有机会想到,因为不懂无法想象和对比也就没得选。
作者: 9zhmke    时间: 2022-6-11 23:16
本帖最后由 9zhmke 于 2022-6-11 23:20 编辑

楼主另辟蹊径地为大家别开了生面一番,以前还真没注意到这种方法
作者: 2198114498    时间: 2022-6-11 23:29
9zhmke 发表于 2022-6-11 23:16
楼主另辟蹊径地为大家别开了生面一番,以前还真没注意到这种方法

呵呵,谢谢,刚好你的留言都看到了。
目前我写批处理,仅仅是想只要纯批处理能解决的,就不安其它工具,
也不是想用批处理解决多大问题,只是业余水平,
偶尔遇到觉得几行代码就能解决的问题,就写写试试,通常时间远超过鼠标解决,
只是想可能还会用到为下次省事,也作为一种小成就小乐趣!
作者: szwp    时间: 2022-6-12 10:03
2198114498 发表于 2022-6-11 22:39
谢谢回复!
最初我需要某些程序开机自动运行,但是有些需要管理员权限,我放在A.bat,其它放在B.bat,但 ...

1个批够了,不需要管理员权限的在提权前运行,未成功的可以传参到提权后的自身。
作者: 2198114498    时间: 2022-6-12 20:14
szwp 发表于 2022-6-12 10:03
1个批够了,不需要管理员权限的在提权前运行,未成功的可以传参到提权后的自身。

谢谢,我当时是用的两个计划任务分别运行,方法很多,只要解决了问题就好,旧的就不改了。
现在的目的是,发现了两个批处理交互通信的,想学一下如何实现的。




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3