[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 14# Five66
怪我描述不彻底。实际情况是一个bat里必须用一次hto32c,还有一次满足条件也用一次的情况。    况且bat是自循环,如果三个bat在一个文件夹内抢文件,产生临时文件,删除临时文件,可能会更乱。所以是安排三个文件夹让他们彼此不乱。
目的,学习批处理

TOP

本帖最后由 hlzj88 于 2023-9-27 20:39 编辑

回复 11# 77七

三个文件夹,已预先改名hto32c.exe,令他们不同,测试bat内已不含随机数,反复改名语句,只强行转换html。结果冲突。
看来并非改名可以避免,而是在hto32c工作内部会冲突。
目的,学习批处理

TOP

回复 17# hlzj88


   我觉得你没理解代码的意思,只用一个 exe三个bat 全对这一个 exe 进行改名,即使三个bat同时改名,也应该只会成功一个吧,或者都不成功?反正不会存在,改名后多出一个exe 的情况。然后改名成功的,会执行操作,操作完毕改回原名,其它bat判断到存在原名的exe又会改名,这个我觉得100%不会存在两个exe同时操作的情况。
bat小白,请多指教!谢谢!

TOP

回复 18# 77七
谢谢,才理解你的意思。这样的确是有道理。我稍后试试。
目的,学习批处理

TOP



n个批处理脚本都在运行,其都要调用的abc.exe又不能被并行或重叠运行(无论abc.exe被更名与否) — 那么稳妥可靠的解决方案就是如何动态规划abc.exe的顺序运行,但遗憾的是,简单的批处理脚本没有多个并行进程之间的"隔离保护"或"相互防干扰"功能,故只能被允许静态顺序运行abc.exe,例如每个批处理脚本中在abc.exe之前的流程A可用并行方法提速,直到各个脚本中的A流程全部完成,再顺序运行n次abc.exe,然后各个批处理脚本的后续流程再用并行方法提速完成。

如果不能用 start "" /b abc.exe ... 并发多个abc.exe进程(无论abc.exe被更名与否),也就很难用并行方法(无论何种途径)可靠运行多个包含abc.exe的批处理脚本,除非有精确模型能预算出每个脚本中abc.exe本身和之前流程的时耗以便动态规划。

我本人经历 '下载网页以及清洗网页' 的路径,是最终转向了Python。

TOP

回复 16# hlzj88

是说用新的bat来专门管理.不是让各自的bat来
管理bat
  1. @echo off
  2. set b=1
  3. set "ph1=wjj1"
  4. set "ph2=wjj2"
  5. set "ph3=wjj3"
  6. start "%ph1%\aaa.bat"
  7. start "%ph2%\aaa.bat"
  8. start "%ph3%\aaa.bat"
  9. :a
  10. cd.>"%ph1%\标志.ini"
  11. call set a=%%b%%
  12. goto :b
  13. :b
  14. if exist "%ph1%\标志.ini" goto :b
  15. cd.>"%ph2%\标志.ini"
  16. call set a=%%b%%
  17. goto :c
  18. :c
  19. if exist "%ph2%\标志.ini" goto :c
  20. cd.>"%ph3%\标志.ini"
  21. call set a=%%b%%
  22. goto :d
  23. :d
  24. call set a=%%b%%
  25. if exist "%ph3%\标志.ini" goto :d
  26. goto :a
复制代码
aaa.bat
  1. @echo off
  2. :ks
  3. copy /y 1.html 2.html
  4. if not exist ..\标志.ini goto ks
  5. htox32c /IP /O0 /U1+4 2.html
  6. del /q 2.html
  7. del /q ..\标志.ini
  8. echo 其他语句
  9. if exist *.html goto ks
复制代码

TOP

本帖最后由 老刘1号 于 2023-9-28 11:24 编辑

回复 4# Batcher


    完全错误的锁实现
多个线程都有同时执行到第七行的可能

并发问题,无非上锁或者生产者消费者统一调度

TOP

本帖最后由 老刘1号 于 2023-9-28 10:54 编辑

回复 20# aloha20200628


    计算机世界中不要轻易说 “不能”
否则只会暴露自己的无知
进程之间本身就是独立的,文件的独立也可以通过文件名最后附加不同的随机数实现
共享资源还需要预测时间?真是滑天下之大稽
但凡系统学过一点并发编程都说不出这话
这东西和语言也没有直接关系,py的多线程支持也是一坨*
甚至语言层面都是跑在一个核上的,最近的标准才准备扔掉这个特性

TOP

楼主可以考虑去搜一下多线程的 peterson 算法实现

TOP

回复 23# 老刘1号


我们所指的‘能与不能’是源于Lz提出的 hto32c.exe 不能同时运行,诸位参与探讨交流都是基于这个‘不能’的主线。你对此有‘能’的解决方案,请予分享。
其实,编码就是在诸多‘能否’ ‘是否’之间取舍,不可含糊,否则编码就无从下手,而相关的讨论交流也没法明确而有效。
说到python,并非是用python重蹈纯P之覆辙,而是凭借其丰富的资源和现成工具大有捷径可行...

TOP

不知道楼主为什么不考虑我的意见,非要解决进程并发问题
我的意思是,从解决问题的角度出发,把进程并发改为htm文件并发
  1. @echo off
  2. set wj1=wj1
  3. set wj2=wj2
  4. set wj3=wj3
  5. :loop
  6. for /f "delims=" %%i in ('dir /b %wj1%\*.htm') do (
  7. htox32c.exe %%i
  8. )
  9. for /f "delims=" %%i in ('dir /b %wj2%\*.htm') do (
  10. htox32c.exe %%i
  11. )
  12. for /f "delims=" %%i in ('dir /b %wj3%\*.htm') do (
  13. htox32c.exe %%i
  14. )
  15. goto :loop
复制代码

QQ 20147578

TOP

本帖最后由 老刘1号 于 2023-9-28 12:12 编辑

回复 25# aloha20200628


    我说了楼主那个 exe 可以并行了吗?
解决方案我没在下边回复吗?
下次回复麻烦自己先 bing 理解一下锁和 peterson 算法是干啥用的。

TOP

回复 27# 老刘1号

Bing一通即可定‘是否’吗?
断定别人‘是否’,不也同时把自己抛入你所谓的‘无知’怪圈吗?
与您这种‘悬空回合’,对本贴具体而明确的探讨交流毫无帮助。到此结束吧!

TOP

回复 26# czjt1234


   答案在15楼,楼主还要进行其它操作,同时开3个bat,大概说明 其它操作的时间需要占用2/3,htox32c.exe不能同时操作,限制了脚本效率,所以利用其它bat进行其它操作的时间,执行htox32c.exe,这样htox32c在三个bat中“接力”执行操作,把效率提到最高。
bat小白,请多指教!谢谢!

TOP

回复 28# aloha20200628


     有民科那味了,你看看
让看资料也不看,咬着 bing 四个字母不放
peterson 算法是 bing 写的吗?
我说 bing 是体谅您的理解能力,直接发几篇论文原文请问您老看得懂吗?model checking 您会吗?

悬空回合?一点也不悬空,反倒是您老一上来就通篇废话,踩一捧一,误导大众。
但凡你能在帖子中写一个“锁”字,把问题引导到正确的方向上,我都得高看你一眼。

我也不是针对您老哈,无知不可怕,但是感受不到自己的无知,还喜欢误导别人的,抱歉我看不惯。

TOP

返回列表