中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 04:37
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:关于找不到批处理的提示 查看 2,118 回复 15
16 发表于 2007-06-28 09:29 ·  中国 山西 运城 联通
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
关于批处理自删除的例子以前讨论过一些

因为那个错误是cmd删除文件后再读文件时提示的

所以在del后加2>nul是没有用的

最简单的莫过于 cmd /k 重新开启一个cmd会话

自然就将原会话中的错误抛弃了

这一句适用于dos和cmd:
%comspec% /k del %0

cmd 中可以有以下变化
%comspec% /k del "%~0" /a /f 2>nul

----------------------------------------------

另外一个极端的方法就是

首先屏蔽标准错误设备的输出再删除

dos下使用ctty nul
cmd下使用cd. 2>nul 3>nul

不过其副作用也是很大的

dos中的当前环境不再处理任何输入输出
系统处于假死状态
所以通常用于所有的操作均在批处理中完成后直接重启的情况

cmd中当前会话以后所有的错误均不输出
所以一般需要新开一个cmd会话运行批处理之后退出这个会话
--------------------------------------------------------------

其它的方法也有过讨论
不过已经记不太清除了
大概也是运用了辅助批处理或者其它脚本
论坛跳转: