12
返回列表 发新帖
楼主: songlynn
收起左侧

[网络] 请教局域网组网方案及批处理高手

[复制链接]
songlynn
 楼主| 发表于 2013-5-6 13:42:25 | 显示全部楼层
本帖最后由 songlynn 于 2013-5-6 13:47 编辑
随便注册 发表于 2013-5-6 13:14
批处理支持,第一个exe不结束,不执行下一句。你试试这两种写法的区别一次十个,A.exe如果支持,批处理写 ...


意思我可以这样:
start A.exe /1
start A.exe /2
start A.exe /3
start A.exe /4
start A.exe /5
start A.exe /6
start A.exe /7
start A.exe /8
start A.exe /9
start A.exe /10
A.exe /11
a.exe /12

.........
但是,这样做会不会在A.exe /11整个地方卡住,会把1~11全部执行玩了再执行12

我刚才试了start /wait 这种命令
但是都无法保证每时每刻都有10个A.exe正在运行
随便注册
发表于 2013-5-6 13:52:44 | 显示全部楼层
songlynn 发表于 2013-5-6 13:42
意思我可以这样:
start A.exe /1
start A.exe /2

对,前11个一起运行,11的exe结束后才到12

“每时每刻都有10个A.exe正在运行”什么意思?
songlynn
 楼主| 发表于 2013-5-6 14:28:16 | 显示全部楼层
随便注册 发表于 2013-5-6 13:52
对,前11个一起运行,11的exe结束后才到12

“每时每刻都有10个A.exe正在运行”什么意思?

意思是前10个进程中,只要任何一个完成,就立刻在运行一个A.exe进程
保持每时每刻都有10个A.exe进程,
随便注册
发表于 2013-5-6 14:55:17 | 显示全部楼层
本帖最后由 随便注册 于 2013-5-6 15:03 编辑
songlynn 发表于 2013-5-6 14:28
意思是前10个进程中,只要任何一个完成,就立刻在运行一个A.exe进程
保持每时每刻都有10个A.exe进程,


这可超出我能力了,你能接受十个cmd窗口吗?
第一个,运行11、21、31……91
@echo off
for /l %%i in (1,1,9) do (A.exe %%i1)
第二个,运行12、22、32……92
@echo off
for /l %%i in (1,1,9) do (A.exe %%i2)
以此类推,9可以改大


无限循环就这样
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. A.exe 1
  4. :xunhuan
  5. set /a qianzhui+=1
  6. A.exe !qianzhui!1
  7. goto xunhuan
复制代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. A.exe 2
  4. :xunhuan
  5. set /a qianzhui+=1
  6. A.exe !qianzhui!2
  7. goto xunhuan
复制代码
貌似不要setlocal enabledelayedexpansion也行,不要的话,!qianzhui!需要改成%qianzhui%
songlynn
 楼主| 发表于 2013-5-6 15:10:21 | 显示全部楼层
随便注册 发表于 2013-5-6 14:55
这可超出我能力了,你能接受十个cmd窗口吗?
第一个,运行11、21、31……91
@echo off

10个cmd窗口不担心,我可以改成脚本,去掉黑窗口

你这个方法是不错,可是,A.exe带不同参数运行结束时间不一样呢,你这样会导致某个循环的可能循环结束了,另外某个循环还在中间执行

不过目前是我看到最好的拉
随便注册
发表于 2013-5-6 15:25:49 | 显示全部楼层
songlynn 发表于 2013-5-6 15:10
10个cmd窗口不担心,我可以改成脚本,去掉黑窗口

你这个方法是不错,可是,A.exe带不同参数运行结束时 ...

需要按自然数顺序启动吗?这个恐怕解决不了,比如同时启动1~10,如果9先结束了,要不要启动11呢?不然十个一批的启动,牺牲点效率?
songlynn
 楼主| 发表于 2013-5-6 15:39:53 | 显示全部楼层
随便注册 发表于 2013-5-6 15:25
需要按自然数顺序启动吗?这个恐怕解决不了,比如同时启动1~10,如果9先结束了,要不要启动11呢?不然十 ...

1~10中无论谁先结束,都启动11,然后第二个结束的启动12
随便注册
发表于 2013-5-6 15:48:31 | 显示全部楼层
songlynn 发表于 2013-5-6 15:39
1~10中无论谁先结束,都启动11,然后第二个结束的启动12

有点像银行窗口排队,不过不知道怎么实现,帮不上你了
songlynn
 楼主| 发表于 2013-5-6 15:50:09 | 显示全部楼层
随便注册 发表于 2013-5-6 15:48
有点像银行窗口排队,不过不知道怎么实现,帮不上你了

无论如何,还是非常感谢你了哈
随便注册
发表于 2013-5-6 21:41:47 | 显示全部楼层
songlynn 发表于 2013-5-6 15:50
无论如何,还是非常感谢你了哈

这样呢?还是十个cmd,加一个公用的临时文件linshi.txt,初始内容为11。每个cmd执行完上一句后都从linshi.txt里取值,并加1后覆写linshi.txt。如果正巧同时结束,不知道电脑怎么判别,有可能重复,还有A.exe遇到输出同名文件怎么办。
  1. @echo off
  2. A.exe 1
  3. setlocal enabledelayedexpansion
  4. :xunhuan
  5. for /f "tokens=* delims=" %%a in (linshi.txt) do (

  6. :加1后作为新值
  7. set /a xiayige=%%a+1

  8. :新值写入linshi.txt
  9. echo !xiayige! > linshi.txt

  10. A.exe %%a
  11. )

  12. goto xunhuan
复制代码
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-17 04:12 , Processed in 0.092454 second(s), 13 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表