![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 10:09 |
共 48,037 主题排行 / 350,122 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 在FOR循环中使用set命令导致%%i参数值失效,如何解决? |
| 可打印版本 1,318 / 12 |
| 第1楼 sgw888 | 发表于 2007-07-01 17:00 |
| 初级用户 发帖 33 积分 86 | |
|
在FOR循环中使用set命令导致%%i参数值失效,如何解决? 我在使用FOR循环的时候,中间,又使用SET命令,让用户输入,结果导致循环不能正常运行了,该如何解决??
部分代码如下: for %%i in (d e f g h i j k l m n o p q r s t u v w x y z) do ( fsutil fsinfo drivetype %%i: | findstr "固定" >nul 2>nul && ( if not exist %%i:\autorun.inf\nul if exist %%i:\autorun.inf ( :menu2 %%i: cls echo +++++++++++++++++++ echo ++ %%i: 盘上发现autorun.inf文件!! ++ echo ++硬盘可能已被U盘autorun病毒感染++ echo ++是否强行删除autorun.inf文件, ++ echo ++并进行免疫? ++ echo ++ 输入^(Y^) 继续 输入[N]取消操作 ++ echo +++++++++++++++++++ shift set choose = set /p choose=请选择: if '%choose%'=='y' goto jixu if '%choose%'=='Y' goto jixu if '%choose%'=='N' goto quxiao if '%choose%'=='n' goto quxiao else goto Wrong |
|
| 第2楼 lxmxn | 发表于 2007-07-01 17:09 |
| 版主 发帖 4,938 积分 11,386 | |
|
不完整的代码。
|
|
| 第3楼 wudixin96 | 发表于 2007-07-01 17:17 |
| 银牌会员 发帖 931 积分 1,928 | |
|
想必应该是关于延迟环境变量问题。
|
|
| 第4楼 sgw888 | 发表于 2007-07-02 14:55 |
| 初级用户 发帖 33 积分 86 | |
|
@echo off
color 0a title U盘autorun病毒免疫 mode con lines=20 @echo off for %%i in (d e f g h i j k l m n o p q r s t u v w x y z) do ( fsutil fsinfo drivetype %%i: | findstr "固定" >nul 2>nul && ( if not exist %%i:\autorun.inf\nul if exist %%i:\autorun.inf ( :menu2 %%i: cls echo +++++++++++++++++++ echo ++ %%i: 盘上发现autorun.inf文件!! ++ echo ++硬盘可能已被U盘autorun病毒感染++ echo ++是否强行删除autorun.inf文件, ++ echo ++并进行免疫? ++ echo ++ 输入[Y] 继续 输入[N]取消操作 ++ echo +++++++++++++++++++ shift set choose = set /p choose=请选择: if '%choose%'=='y' goto jixu if '%choose%'=='Y' goto jixu if '%choose%'=='N' goto quxiao if '%choose%'=='n' goto quxiao else goto Wrong :Wrong cls echo +++++++++++++ echo + 输入错误!任意键重试!+ echo + BY 天使 QQ:58198859 + echo +++++++++++++ pause>nul goto menu2 :jixu del \autorun.inf /a /f md \autorun.inf \autorun.inf\prn\ \autorun.inf\病毒免疫文件夹请不要删除!..\ if exist \autorun.inf\nul (cls echo autorun.inf文件夹[病毒免疫文件夹]创建成功! ) else ( cls echo autorun.inf文件夹[病毒免疫文件夹]创建失败! ) :quxiao echo off ) ) ) |
|
| 第5楼 zh159 | 发表于 2007-07-02 16:32 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
for内部不要使用标签
|
|
| 第6楼 sgw888 | 发表于 2007-07-03 11:25 |
| 初级用户 发帖 33 积分 86 | |
Originally posted by zh159 at 2007-7-2 04:32 PM: 不太明白,可不可以帮我修改一下代码???? |
|
| 第7楼 qinbuer | 发表于 2007-07-03 13:49 |
| 高级用户 发帖 228 积分 512 | |
|
改了一下... ...
@echo off color 0a title U盘autorun病毒免疫 mode con lines=20 for %%i in (d e f g h i j k l m n o p q r s t u v w x y z) do ( fsutil fsinfo drivetype %%i: | findstr "固定" >nul 2>nul && ( if not exist %%i:\autorun.inf\nul (if exist %%i:\autorun.inf set var=%%i & goto menu2) else echo %%i: 已经免疫 ) ) goto quxiao :menu2 var: cls echo +++++++++++++++++++ echo ++ %var%:盘上发现autorun.inf文件!! ++ echo ++硬盘可能已被U盘autorun病毒感染++ echo ++是否强行删除autorun.inf文件, ++ echo ++并进行免疫? ++ echo ++ 输入[Y] 继续 输入[N]取消操作 ++ echo +++++++++++++++++++ shift set choose = set /p choose=请选择: if /i '%choose%'=='y' goto jixu if /i '%choose%'=='n' goto quxiao goto Wrong :Wrong cls echo +++++++++++++ echo + 输入错误!任意键重试!+ echo + BY 天使 QQ:58198859 + echo +++++++++++++ pause>nul goto menu2 :jixu del \autorun.inf /a /f md \autorun.inf \autorun.inf\prn\ \autorun.inf\病毒免疫文件夹请不要删除!..\ if exist \autorun.inf\nul (cls echo autorun.inf文件夹[病毒免疫文件夹]创建成功! ) else ( cls echo autorun.inf文件夹[病毒免疫文件夹]创建失败! ) :quxiao pause |
|
| 第8楼 sgw888 | 发表于 2007-07-05 14:18 |
| 初级用户 发帖 33 积分 86 | |
|
楼上的代码不对,循环只执行一次.
我的目的是对所有硬盘进行判断. |
|
| 第9楼 sgw888 | 发表于 2007-07-08 13:53 |
| 初级用户 发帖 33 积分 86 | |
|
没有人会吗??
|
|
| 第10楼 qingfushuan | 发表于 2007-07-08 14:02 |
| 高级用户 发帖 327 积分 502 | |
|
刚巧我才作的,供你参考:
[ Last edited by qingfushuan on 2007-7-8 at 02:03 PM ] |
|
| 第11楼 sgw888 | 发表于 2007-07-09 12:37 |
| 初级用户 发帖 33 积分 86 | |
Originally posted by qingfushuan at 2007-7-8 02:02 PM: |
|
| 第12楼 sgw888 | 发表于 2007-07-14 09:06 |
| 初级用户 发帖 33 积分 86 | |
|
看来只有放弃使用SET进行手动选择了.
|
|
| 第13楼 bjsh | 发表于 2007-07-14 10:17 |
| 银牌会员 发帖 621 积分 2,000 | |
Originally posted by sgw888 at 2007-7-5 02:18 PM: goto menu2 把这个 改成 call :menu2 试试... 没怎么仔细看 只针对你说指的问题 而言 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |