中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 03:19
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 求助:关于找不到批处理的提示
可打印版本  2,116 / 15
第1楼 eech 发表于 2007-05-31 23:30
高级用户 发帖 346 积分 906
求助:关于找不到批处理的提示
C:\Documents and Settings\All Users\「开始」菜单\卸载IE多窗口插件.bat

内容如下:
----------------------------------
@ECHO off
echo 你确定要卸载IE多窗口插件吗?
echo 按任意键开始卸载!(会自动关闭IE窗口和资源管理器窗口)
pause>nul
attrib -s -h -r "%ALLUSERSPROFILE%\「开始」菜单\卸载IE多窗口插件.bat"
taskkill /f /im iexplore.exe>nul 2>nul
taskkill /f /im explorer.exe>nul 2>nul
regsvr32 /u /s %windir%\system32\WebTools.dll
del %windir%\system32\Help.gif
del %windir%\system32\settings.gif
del %windir%\system32\license.dat
del %windir%\system32\WebTools.dll
del %windir%\system32\WebToolshelp.htm
del %windir%\system32\WebToolssettings.htm
reg delete "HKEY_CURRENT_USER\Software\Microgarden\WebTools" /f
start explorer.exe
start ...
del %0
-----------------------------------
可正常运行,并生效,最后删除自身,只是运行到最后提示“找不到批处理文件”改了无数次,实在不知哪不对了,请好心人帮忙看看
第2楼 lxmxn 发表于 2007-06-01 00:37
版主 发帖 4,938 积分 11,386
去掉@echo off和del %0自己检查一下.
第3楼 zh159 发表于 2007-06-01 01:34
金牌会员 发帖 1,467 积分 3,687
看错^_^

我这里可以删除,只是不能在命令行运行这个目录的批处理,提示“找不到批处理文件”

试试:
del %0>nul 2>nul

[ Last edited by zh159 on 2007-6-1 at 10:57 AM ]
第4楼 eech 发表于 2007-06-01 10:46
高级用户 发帖 346 积分 906
不行啊,加了AH,还是提示找不到,
第5楼 ttyp 发表于 2007-06-01 11:52
初级用户 发帖 84 积分 180
是不是因为有长目录或者带空格的目录还是中文目录?
第6楼 ttyp 发表于 2007-06-01 11:52
初级用户 发帖 84 积分 180
del "%0"
第7楼 zh159 发表于 2007-06-01 11:57
金牌会员 发帖 1,467 积分 3,687
Originally posted by ttyp at 2007-6-1 11:52:
del "%0"

直接使用%0会自带双引号
第8楼 eech 发表于 2007-06-01 12:27
高级用户 发帖 346 积分 906
大家可以保存我的批处理文件试一下,无论怎么写都会提示找不到批处理文件,

错误提示:

WINDOWS找不到文件夹 /IDLIST:252:856,请确定文件名是否正确,再试一次,要搜索文件,请单击「开始」菜单按钮,然后单击"搜索"
第9楼 eech 发表于 2007-06-01 12:28
高级用户 发帖 346 积分 906
Originally posted by zh159 at 2007-6-1 01:34:
看错^_^

我这里可以删除,只是不能在命令行运行这个目录的批处理,提示“找不到批处理文件”

试试:
del %0>nul 2>nul

[ Last edited by zh159 on 2007-6-1 at 10:57 AM ]


早加过了,还是有错误提示
第10楼 dikex 发表于 2007-06-01 13:10
高级用户 发帖 366 积分 788
我这里运行正常,运行后可以自行退出并删除自身
第11楼 eech 发表于 2007-06-01 13:29
高级用户 发帖 346 积分 906
Originally posted by dikex at 2007-6-1 13:10:
我这里运行正常,运行后可以自行退出并删除自身


我也是可以的,但如果你仔细看,最后会有一句,找不到批处理的提示,虽不影响使用,但我想找出原因
第12楼 dikex 发表于 2007-06-01 13:59
高级用户 发帖 366 积分 788
先做一个试验,写一个批处理,内容为


运行后先不要按任何键,在那个批处理上面右键——编辑,将echo a改为echo b,保存后转为那个正在运行的批处理的窗口,按一下任意键,结果echo出来的是b而不是a!

再做一个试验,批处理内容如下:


同样运行后不要按任何键,然后把那个批处理文件删除或者重命名,接着转为批处理的运行窗口,按一下任意键,批处理直接退出而不执行下面的语句,隐约看到一行报错的语句;


关于这个,以下为个人猜测:

批处理运行时并不会一开始就将所有的代码载入内存,而是每执行完一行才载入下一行的代码,于是我们就产生了试验里面中途改变代码后执行的是修改后的代码;

具体到楼主的那个批处理,由于批处理在运行时把自身删除了,在执行完那个del的命令后系统想往下读取下一行命令时却发现找不到那个批处理文件,于是就报错了。

[ Last edited by dikex on 2007-6-1 at 02:04 PM ]
第13楼 dikex 发表于 2007-06-01 14:07
高级用户 发帖 366 积分 788
使用cmd /k来调用那个试验批处理,结果比较容易观测
第14楼 HAT 发表于 2007-06-01 20:12
版主 发帖 5,017 积分 9,023



网上有人说del %0后面不能加回车,但是经我测试,以上三段代码无论怎样改都会报错,跟楼主一样。
我的测试环境XP SP2
等待高人出现
第15楼 48344620 发表于 2007-06-01 21:38
初级用户 发帖 27 积分 52
同意12楼的说法,我也测试了一下,和14楼的结果一样。
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023