找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20302|回复: 8

[已解决]怎样实现批处理与用户对话执行?

[复制链接]
发表于 2011-9-25 18:49:40 | 显示全部楼层 |阅读模式
本帖最后由 botong 于 2011-9-26 00:17 编辑

本人有一个批处理文件,内容如下:
start "13777777777" cmd /k E:\fetion\fetion.exe --config=list.conf --index=1
start "15000000000" cmd /k E:\fetion\fetion.exe --config=list.conf --index=2
start "15999999999" cmd /k E:\fetion\fetion.exe --config=list.conf --index=3
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………

类似这样的代码有十几行的,大意就是打开多个窗口分别处理一个飞信号的登录。
--index= 处理list.conf 中传过来的信息的。
现在我想如果不执行所有条的命令,可不可给来个询问,比如执行1、2、3……中的哪一个,也就是登录哪一个飞信?然后由用户根据需要选择输入序号,从而实现多个登录。
最好是能够选择不登录哪个,因为大多时间几乎全要登录,只有个别不需要登录。
另外在执行以上批处理的同时,是否判断窗口打开的时间,从而实现定时关闭,比如一个飞信号挂到了两个小时就自动退出程序。
有劳了,请教大家。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-9-25 19:34:20 | 显示全部楼层
  1. @echo off
  2. set list=1 2 3 4 5
  3. set input=0
  4. set /p input=请选择不登录哪个:
  5. for /f "delims=" %%a in ('more +8 "%~f0" ^| findstr /v "index=%input%"') do (
  6.     %%a
  7. )
  8. goto :eof
  9. start "13777777777" cmd /k E:\fetion\fetion.exe --config=list.conf --index=1
  10. start "15000000000" cmd /k E:\fetion\fetion.exe --config=list.conf --index=2
  11. start "15999999999" cmd /k E:\fetion\fetion.exe --config=list.conf --index=3
  12. start "15999999998" cmd /k E:\fetion\fetion.exe --config=list.conf --index=4
  13. start "15999999997" cmd /k E:\fetion\fetion.exe --config=list.conf --index=5
复制代码
 楼主| 发表于 2011-9-25 19:49:30 | 显示全部楼层
回复 2# awk


    经过测试发现你写的代码很好用?希望能够再帮助完善一下:
1.当不登录的号为一个时基本正常,只有当输入1时,发现少登了两个号。
2.当不登录的号为多个时,程序无法正常执行。比如我输入1 3 就只能运行一个窗口。
3.能否帮我加一个定时退出功能?
十分感谢!
发表于 2011-9-25 19:52:02 | 显示全部楼层
回复 3# botong


先解决问题1:
  1. @echo off
  2. set list=1 2 3 4 5
  3. set input=0
  4. set /p input=请选择不登录哪个:
  5. for /f "delims=" %%a in ('more +8 "%~f0" ^| findstr /v "index=%input%$"') do (
  6.     %%a
  7. )
  8. goto :eof
  9. start "13777777777" cmd /k E:\fetion\fetion.exe --config=list.conf --index=1
  10. start "15000000000" cmd /k E:\fetion\fetion.exe --config=list.conf --index=2
  11. start "15999999999" cmd /k E:\fetion\fetion.exe --config=list.conf --index=3
  12. start "15999999998" cmd /k E:\fetion\fetion.exe --config=list.conf --index=4
  13. start "15999999997" cmd /k E:\fetion\fetion.exe --config=list.conf --index=5
复制代码
 楼主| 发表于 2011-9-25 20:13:19 | 显示全部楼层
回复 4# awk
问题一已经解决,可以了。我现在是拿11个号来测试的。
当输入两个数字时,就指不定登几个号了,有可能登录5个,有可能登录2个或3个
当输入三个数字时,有可能登1个,2个,3个号全有可能的。
发表于 2011-9-25 21:38:05 | 显示全部楼层
回复 5# botong
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set list=1 2 3 4 5
  4. set input=0
  5. set regexp=
  6. set /p input=请选择不登录哪个:
  7. for %%a in (%input%) do (
  8.     set regexp=!regexp! index=%%a$
  9. )
  10. for /f "delims=" %%a in ('more +13 "%~f0" ^| findstr /v "%regexp%"') do (
  11.     %%a
  12. )
  13. goto :eof
  14. start "13777777777" cmd /k E:\fetion\fetion.exe --config=list.conf --index=1
  15. start "15000000000" cmd /k E:\fetion\fetion.exe --config=list.conf --index=2
  16. start "15999999999" cmd /k E:\fetion\fetion.exe --config=list.conf --index=3
  17. start "15999999998" cmd /k E:\fetion\fetion.exe --config=list.conf --index=4
  18. start "15999999997" cmd /k E:\fetion\fetion.exe --config=list.conf --index=5
复制代码

评分

参与人数 2技术 +2 收起 理由
botong + 1 非常感谢你的不断完善。
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2011-9-25 22:08:36 | 显示全部楼层
本帖最后由 botong 于 2011-9-25 23:16 编辑

回复 6# awk


怎么回事呢?怎么窗口一闪而过呢?我用回之前的语句也还是同样的情况,这是为什么呢?奇怪了。
发表于 2011-9-25 22:58:49 | 显示全部楼层
回复 7# botong


你到命令行窗口里面运行一下那个bat文件,看看报错信息是什么。
 楼主| 发表于 2011-9-25 23:35:21 | 显示全部楼层
本帖最后由 botong 于 2011-9-26 00:16 编辑

回复 8# awk
可以了,非常感谢,我反复的观察了一下,可能是我复制你的代码中间有空格所致吧,我把代码中间的空白部分全删除了,居然就好了,而且你的最后一个程序也完全可以用了,我测试了多次没有再发现问题,现在只差一个定时退出了,这个倒不是最重要的,谢谢你,早点睡吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 03:10 , Processed in 0.019745 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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