自解压文件解压后执行批处理不能完全执行命令

自解压文件名为123.exe,解压后运行批处理文件,批处理文件中含有此三行命令:echo%~dp0>>path.txtdel/F/Q"%~dp0123.exe"del/F... 自解压文件名为123.exe,解压后运行批处理文件,批处理文件中含有此三行命令:

echo %~dp0>>path.txt
del /F/Q "%~dp0123.exe"
del /F/Q %0

但是解压后批处理执行了第一行命令向path.txt中写入了当前地址,执行了最后一条公命令将自己删除了。
唯独没有执行第二条命令“将自解压文件删除”这是什么原因??
另外在WINDOWS7在却能正常执行全部三条,在XP中却不行??
展开
 我来答
朴素且可爱灬小喵1
2014-03-06 · TA获得超过2902个赞
知道大有可为答主
回答量:1713
采纳率:89%
帮助的人:517万
展开全部
我猜您是把调用批处理的命令放在自解压文件的"命令"部分了吧。
这三句话执行时间应当是几十毫秒或百毫秒计的,所以第一条在执行完时,解压缩文件还没运行完,被windows阻止了,但是批处理命令本身的执行是调入内存再执行的,所以没执行完,也能删除成功的。
您可以这样,假设您原来这个批处理叫myclear.bat,您再写一个mycall.bat:
start myclear.bat
del myclear.bat
自解压文件执行后,改为调用mycall.bat,然后,在您的原批处理第二行前面,加上:
ping localhost >nul
中间加的那句相当于等待4秒(4次本地ping),在这段时间里必须完成自解压和自解压的内存释放。
您试一下,如果可以了,尝试直接调用myclear.bat。
碎梦碎爱
2014-02-17 · TA获得超过169个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:175万
展开全部
echo  %~dp0>>path.txt
del /s /q /f "%~dp0123.exe"
del /s /q /f %0
更多追问追答
追问
什么意思?
追答

删除的参数不对

你应该换一种思路

echo %~dp0>>path.txt
set /p path=<path.txt
del /s /q /f %path%\123.exe
del /s /q /f %0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yibaifei000
2014-02-17 · 超过24用户采纳过TA的回答
知道答主
回答量:97
采纳率:100%
帮助的人:30.9万
展开全部
建议用绝对路径 D:\path.txt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式