中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 01:26
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行
DOS批处理 & 脚本技术(批处理室) » 一个嵌套问题?
可打印版本  1,597 / 10
第1楼 mrhjzhang 发表于 2006-08-04 19:35
初级用户 发帖 39 积分 100
一个嵌套问题?
我的是for(
...

里面嵌套
if A(
...
)

但是
for(
...
if A(
...
) <-------跳出

if B(
...
)

的时候,在那个地方跳出。
第2楼 220110 发表于 2006-08-04 22:09
荣誉版主 发帖 313 积分 718
for * (
...
if a (
..
goto :XX
)else(
..
goto :YY
)

)

[ Last edited by 220110 on 2006-8-4 at 22:54 ]
第3楼 mrhjzhang 发表于 2006-08-11 20:21
初级用户 发帖 39 积分 100
谢谢版主
,请问你的意思是不是在第一套()前面加*号?
第4楼 mrhjzhang 发表于 2006-08-11 20:22
初级用户 发帖 39 积分 100
想用bat生成如下代码
%rm% -i "01.rmvb" -o "A01.ra" -s -e
%rm% -i "01.rmvb" -o "B01.ra" -s -e
%rm% -i "A01.ra" -i "B01.ra" -o "01.rm" -t "" -a "" -c "" -C "" -q "" -n "" -R ""
if exist 01.rm (del /f /q 01.rmvb & del /f /q ?01.ra)

%rm% -i "02.rmvb" -o "A02.ra" -s -e
%rm% -i "02.rmvb" -o "B02.ra" -s -e
%rm% -i "A02.ra" -i "B02.ra" -o "02.rm" -t "" -a "" -c "" -C "" -q "" -n "" -R ""
if exist 02.rm (del /f /q 02.rmvb & del /f /q ?02.ra)

%rm% -i "03.rmvb" -o "A03.ra" -s -e
%rm% -i "03.rmvb" -o "B03.ra" -s -e
%rm% -i "A03.ra" -i "B03.ra" -o "03.rm" -t "" -a "" -c "" -C "" -q "" -n "" -R ""
if exist 03.rm (del /f /q 03.rmvb & del /f /q ?03.ra)

%rm% -i "04.rmvb" -o "A04.ra" -s -e
%rm% -i "04.rmvb" -o "B04.ra" -s -e
%rm% -i "A04.ra" -i "B04.ra" -o "04.rm" -t "" -a "" -c "" -C "" -q "" -n "" -R ""
if exist 04.rm (del /f /q 04.rmvb & del /f /q ?04.ra)

%rm% -i "05.rmvb" -o "A05.ra" -s -e
%rm% -i "05.rmvb" -o "B05.ra" -s -e
%rm% -i "A05.ra" -i "B05.ra" -o "05.rm" -t "" -a "" -c "" -C "" -q "" -n "" -R ""
if exist 05.rm (del /f /q 05.rmvb & del /f /q ?05.ra)

%rm% -i "06.rmvb" -o "A06.ra" -s -e
%rm% -i "06.rmvb" -o "B06.ra" -s -e
%rm% -i "A06.ra" -i "B06.ra" -o "06.rm" -t "" -a "" -c "" -C "" -q "" -n "" -R ""
if exist 06.rm (del /f /q 06.rmvb & del /f /q ?06.ra)

%rm% -i "07.rmvb" -o "A07.ra" -s -e
%rm% -i "07.rmvb" -o "B07.ra" -s -e
%rm% -i "A07.ra" -i "B07.ra" -o "07.rm" -t "" -a "" -c "" -C "" -q "" -n "" -R ""
if exist 07.rm (del /f /q 07.rmvb & del /f /q ?07.ra)

%rm% -i "08.rmvb" -o "A08.ra" -s -e
%rm% -i "08.rmvb" -o "B08.ra" -s -e
%rm% -i "A08.ra" -i "B08.ra" -o "08.rm" -t "" -a "" -c "" -C "" -q "" -n "" -R ""
if exist 08.rm (del /f /q 08.rmvb & del /f /q ?08.ra)

%rm% -i "09.rmvb" -o "A09.ra" -s -e
%rm% -i "09.rmvb" -o "B09.ra" -s -e
%rm% -i "A09.ra" -i "B09.ra" -o "09.rm" -t "" -a "" -c "" -C "" -q "" -n "" -R ""
if exist 09.rm (del /f /q 09.rmvb & del /f /q ?09.ra)
第5楼 mrhjzhang 发表于 2006-08-11 20:23
初级用户 发帖 39 积分 100
批处理如下:
for /L %%i in (1,1,9) do (
@echo %%rm%% -i "0%%i.rmvb" -o "a0%%i.ra" -s -e >>rr.bat
@echo %%rm%% -i "0%%i.rmvb" -o "b0%%i.ra" -s -e >>rr.bat
@echo %%rm%% -i "a0%%i.ra" -i "b0%%i.ra" i -o "0%%i.rm" -t "" -a "" -c "" -c "" -q "" -n "" -R "" >>rr.bat
@echo if exist 0%%i.rm (del /f /q 0%%i.rmvb & del /f /q ?0%%i.ra) >>rr.bat
@echo.>>rr.bat
@echo.>>rr.bat
)
第6楼 mrhjzhang 发表于 2006-08-11 20:25
初级用户 发帖 39 积分 100
但是问题之一就是嵌套挂号,
还有个问题就是如何用echo 输出“&”,”%&“好像无效。

版主的*号好像加入报错,goto :xx我也看不大明白。
我比较菜,还请多指示啊。
第7楼 mrhjzhang 发表于 2006-08-14 20:37
初级用户 发帖 39 积分 100
大大们呢??
第8楼 mrhjzhang 发表于 2006-08-19 23:33
初级用户 发帖 39 积分 100
最后再顶一下,看来是没希望了。
第9楼 willsort 发表于 2006-08-22 03:37
元老会员 发帖 1,512 积分 4,432

───────────────── 版务记录 ─────────────────
执行:Will Sort
操作:移动主题:自《DOS疑難解答 & 問題討論 (解答室)》
说明:依照主题内容分类,更适合于发表在此版区
处罚:扣除因发表该主题而奖励的6点积分,扣除标题违规惩罚性2点积分
───────────────── 版务记录 ─────────────────


Re mrhjzhang:

一楼的问题大约是你的if A() 中再度出现了 () 却没有正常转义。

四五六楼的问题关键在于转义字符 ^ ,echo & | < > ( ) 等特殊字符时需使用这个自负作前缀。

@echo if exist 0%%i.rm (del /f /q 0%%i.rmvb & del /f /q ?0%%i.ra) >>rr.bat

可改为:

echo if exist 0%%i.rm ^(del /f /q 0%%i.rmvb ^& del /f /q ?0%%i.ra^) >>rr.bat

或者:

echo if exist 0%%i.rm del /f /q 0%%i.rmvb ^& del /f /q ?0%%i.ra >>rr.bat

[ Last edited by willsort on 2006-8-22 at 03:48 ]
第10楼 mrhjzhang 发表于 2006-09-06 08:33
初级用户 发帖 39 积分 100
不好意思,嵌套本来就可以,是我某些部分写错了。

[ Last edited by mrhjzhang on 2006-9-6 at 20:10 ]
第11楼 mrhjzhang 发表于 2006-09-06 08:38
初级用户 发帖 39 积分 100
感谢楼上几位热心的朋友,顺利解决。:P:P:lol::lol:

[ Last edited by mrhjzhang on 2006-9-6 at 20:11 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023