中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-08 03:38
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]for循环嵌套,数字与文件对应问题 查看 678 回复 3
楼 主 [求助]for循环嵌套,数字与文件对应问题 发表于 2007-09-24 22:01 ·  中国 广东 广州 番禺区 电信
初级用户
积分 86
发帖 45
注册 2007-07-26 17:35
18年会员
UID 94082
性别 男
状态 离线
在某个文件夹了有多个.bat文件,为了简单起见,现在假设是2个(实际是多个的),偶写了一下程序
set /p n=请输入一个正整数:
for /f %%i in ('dir /b j:\cd\*.bat') do (
for /l %%b in (1,1,%n%) do (
echo Shell%%bCaption=>>SETUP.INI
echo Shell%%bCommand=%%i>>SETUP.INI
echo.>>SETUP.INI
)
)
pause

例如我输入 3 结果SETUP.INI里面的内容是
Shell1Caption=
Shell1Command=WSXP.BAT

Shell2Caption=
Shell2Command=WSXP.BAT

Shell3Caption=
Shell3Command=WSXP.BAT

Shell1Caption=
Shell1Command=WSXZ.BAT

Shell2Caption=
Shell2Command=WSXZ.BAT

Shell3Caption=
Shell3Command=WSXZ.BAT

但我想要的结果是
Shell1Caption=
Shell1Command=WSXP.BAT

Shell2Caption=
Shell2Command=WSXZ.BAT

Shell3Caption=
Shell3Command=
请问怎样才能得到预期的结果呢??希望高人解答一下,多谢了
2 发表于 2007-09-25 01:02 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
ShellCommand= 后面是不是接的三个不同的批处理文件名?
3 发表于 2007-09-25 19:36 ·  中国 广东 广州 天河区 电信
初级用户
积分 86
发帖 45
注册 2007-07-26 17:35
18年会员
UID 94082
性别 男
状态 离线
Originally posted by lxmxn at 2007-9-25 01:02 AM:
ShellCommand= 后面是不是接的三个不同的批处理文件名?

是的,就是ShellCommand=后面对应不同的bat文件,望老大出手了....多谢
4 发表于 2007-09-25 21:01 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
@echo off &SetLocal EnableDelayedExpansion

set /p number=请输入数字:
if not defined number exit/b
for /F "delims=" %%a in ('dir /s/b/a-d j:\cd\*.bat') do (
set /a temp+=1
(
echo Shell!temp!Caption=
echo Shell!temp!Command=%%a
echo\
)>>SETUP.INI
if !temp! equ %number% goto :eof
)
有时间多看看for相关的教程.

[ Last edited by lxmxn on 2007-9-25 at 09:16 PM ]
论坛跳转: