无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 7636|回复: 10
打印 上一主题 下一主题

win7下删除批处理自身如何做到不在窗口内显示“找不到批处理文件”

[复制链接]
跳转到指定楼层
1#
发表于 2011-3-14 15:46:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教诸位:
win7下删除批处理自身如何做到不在窗口内显示“找不到批处理文件”?虽说是一闪而过,毕竟看见了不爽。

嘿嘿,貌似在xp下删除批处理自身时不会在窗口内显示“找不到批处理文件”。不会也是一闪而过,仅仅是因速度太快看不到吧?

干掉自己.cmd:
---------------------------
del %0 >nul

[ 本帖最后由 不才 于 2011-3-14 15:49 编辑 ]
2#
发表于 2011-3-14 16:30:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

3#
 楼主| 发表于 2011-3-14 17:04:54 | 只看该作者
原帖由 mrwang123 于 2011-3-14 16:30 发表
del "%~dpnx0" >nul
我没有WIN7的环境,不知道这样子行不行?

嘿嘿,多谢仁兄指点。
还是不行,仍然出现“找不到批处理文件”。
偶也没有实机的win7环境,都是在vpc内的win7下测试滴。
倘若真的在实机下测试,或许就看不到那一闪而过的报错了。
回复

使用道具 举报

4#
发表于 2011-3-14 18:13:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

5#
 楼主| 发表于 2011-3-14 20:17:11 | 只看该作者
原帖由 mrwang123 于 2011-3-14 18:13 发表
你在命令行下测试不管是WIN7还是XP都有这样的提示,这是正常现象(试想都将自己给砍了,肯定会找不到自身了,呵呵。。。),只是在虚机测试时速度较慢所以比较明显而已。
要不你再这样试下:del "%~dpnx0" >nu ...

嘿嘿,ok了!
在win7下测试,对于删除自身的命令,无论是del "%~dpnx0"、del %0 、或者 rd /s /q "%~dp0",只需在后面紧跟" && exit ",即可消除“找不到批处理文件”的提示。
再次感谢 mrwang123  兄!
在命令行下测试不管是WIN7还是XP都有这样的提示,这是正常现象(试想都将自己给砍了,肯定会找不到自身了,呵呵。。。),——原以为xp下自己砍了自己会不好意思说出来的,谁知还是说出来了,不过是轻轻嘟囔了一声,偶没听见而已。嘿嘿
回复

使用道具 举报

6#
发表于 2012-10-28 15:38:13 | 只看该作者
>nul对错误无法重定向。
要对错误重定向的话应使用 2>nul(2前面有个空格。)
例:del /s /q /f "%~dpnx0" 2>nul >nul

[ 本帖最后由 2011czmxbb52 于 2012-10-28 15:44 编辑 ]
回复

使用道具 举报

7#
发表于 2012-11-2 15:53:21 | 只看该作者
set rd1=%random%
set rd2=%random%
echo del "%~dpnx0" >"%temp%\%rd1%.cmd"
echo call "%temp%\%rd2%.cmd">>"%temp%\%rd1%.cmd"
echo del "%temp%\%rd1%.cmd">"%temp%\%rd2%.cmd"
call "%temp%\%rd1%.cmd"

系统临时文件夹中会多一个 用随机数字命名的cmd脚本,该脚本内容是删除另一个随机数字为名字的cmd脚本,而这个已经被删除的随机数字为名字的脚本是用来删除你这个要被自我毁灭的cmd脚本的。

[ 本帖最后由 dos时代菜鸟 于 2012-11-2 15:55 编辑 ]
回复

使用道具 举报

8#
发表于 2012-11-3 15:58:23 | 只看该作者

回复 #7 dos时代菜鸟 的帖子

太高深了              ..
回复

使用道具 举报

9#
发表于 2015-1-23 19:13:59 | 只看该作者
楼主,后面加exit,我试了,是没看到,但不知是不是因为太快的原因,还是这提示删除 了,确定一件事,楼主小洁癖{:soso_e113:}
回复

使用道具 举报

10#
发表于 2015-2-1 12:10:59 | 只看该作者
回复

使用道具 举报

11#
发表于 2015-2-6 09:22:01 来自手机 | 只看该作者
本帖最后由 x9tian 于 2015-2-6 09:24 编辑
527104427 发表于 2012-11-3 15:58
太高深了              ..


不应菜鸟那么麻烦,
这是因为 CMD启动定位目录不同,
通常在运行输入CMD 会定位到cmd.exe所在的 %windir%\system32
直接运行 批处理文件会定位到 用户目录   通常在%systemroot%\user\登陆用户名
凡是运行 批处理  开始  加上pushd "%~dp0"  (%~ 会去掉变量的引号,  这里补上 就可以防止带空格的文件夹路径时定位 不出错

   
在win7 下   for  语句   都有了一些坏的方面改变

  for  符号截取 delims
          段位截取 tokens  都有调整

   这也是为什么  好多能在xp下用得好好的批处理在win7下就运行出错

  比如 tokens=2-7
   在win7下  你就得写成  tokens=2 3 4 5 6 7

  delims   空格和tab一起用 就必出问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-27 22:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表