中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-17 17:50
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]批处理start实现多线程的问题 查看 918 回复 8
楼 主 [求助]批处理start实现多线程的问题 发表于 2008-12-21 15:37 ·  中国 重庆 渝中区 电信
新手上路
积分 5
发帖 4
注册 2008-12-20 19:38
UID 134464
性别 男
状态 离线
在本论坛上看到了这么一段
@echo off
if == (Goto :Start) else (Goto ing)
:Start
set "ip=172.16.45"

for /L %%i in (1,1,254) do Start %~s0 %ip%.%%i
Goto :eof
ing
ping %1 -n 1 -w 1 >nul&&echo %1 >>ip.txt
exit

是ping的多线程 用start实现循环
我这里有个工具的命令格式是 文件名+ip
代码是一行行的写在文件中的
想到了也来个多线程 于是参照上面的代码 写了...

@echo off
if == (Goto :Start) else (Goto :test)
:Start
for /F %%i in (ip.txt) do start %~s0 %%i
Goto :eof
:test
test.exe %%1 >nul&&echo %%1 >>test.txt
pause

ps:test 是工具的文件名
以为这个批处理能够处理多线程
但是随后发现.... 只能够处理 ip.txt的第一行ip
后面的就执行了 真是郁闷.... 各位大哥大姐
能看看我这段批处理是错在哪里么?
2 发表于 2008-12-21 16:11 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
UID 96653
性别 男
状态 离线
不是 %%1,是 %1

这样行吗?
@echo off
for /f %%a in (ip.txt) do (
test.exe %%a >nul&&echo %%a>>test.txt
)
3 发表于 2008-12-21 16:17 ·  中国 重庆 渝中区 电信
新手上路
积分 5
发帖 4
注册 2008-12-20 19:38
UID 134464
性别 男
状态 离线
%1也不行的...
还有你写的那个虽然可以
但不是多线程的~
不过还是谢谢啦!!
4 Re 3 楼 发表于 2008-12-21 16:28 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
UID 96653
性别 男
状态 离线
多线程?

这样?
@echo off
for /f %%a in (ip.txt) do (
start test.exe %%a >nul&&echo %%a>>test.txt
)
5 发表于 2008-12-21 20:01 ·  中国 广西 百色 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
UID 103929
性别 男
来自 广西
状态 离线
这样?
@echo off
if not "%1"=="" goto :test
for /f "delims=" %%a in (ip.txt) do (
start "" "%~fs0" %%a
)
exit
:test
test.exe %1 >nul&&>>test.txt echo %1
exit
6 发表于 2008-12-22 12:23 ·  中国 重庆 渝中区 电信
新手上路
积分 5
发帖 4
注册 2008-12-20 19:38
UID 134464
性别 男
状态 离线
十分感謝 不過這個"%~fs0" 是什么意思呢
7 发表于 2008-12-22 13:00 ·  中国 广西 百色 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
UID 103929
性别 男
来自 广西
状态 离线
Originally posted by pcode at 2008-12-22 12:23:
十分感謝 不過這個"%~fs0" 是什么意思呢

for /?
%~fI - 将 %I 扩充到一个完全合格的路径名
%~sI - 扩充的路径只含有短名
%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名
8 发表于 2009-01-23 22:34 ·  中国 福建 厦门 思明区 电信
新手上路
积分 18
发帖 18
注册 2008-12-18 21:51
UID 134292
性别 男
状态 离线
太强了,还有这东西?
9 发表于 2009-01-23 22:34 ·  中国 福建 厦门 思明区 电信
新手上路
积分 18
发帖 18
注册 2008-12-18 21:51
UID 134292
性别 男
状态 离线
太强了,还有这东西?
论坛跳转: