关于批处理自删除的例子以前讨论过一些
因为那个错误是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会话运行批处理之后退出这个会话
--------------------------------------------------------------
其它的方法也有过讨论
不过已经记不太清除了
大概也是运用了辅助批处理或者其它脚本
因为那个错误是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会话运行批处理之后退出这个会话
--------------------------------------------------------------
其它的方法也有过讨论
不过已经记不太清除了
大概也是运用了辅助批处理或者其它脚本
