Board logo

标题: [文件操作] 如何保证del.bat运行的时候,自身不被程序删除? [打印本页]

作者: playinthesky    时间: 2014-1-22 02:14     标题: 如何保证del.bat运行的时候,自身不被程序删除?

  1. @echo off
  2. del *.bat/q/s
  3. del *.dat
  4. pause
复制代码
这样一执行,删除的批处理也被删除了,每次在根目录下执行,都会如此,虽然可以自己重新再写一边,或者加路径,
,但是总觉得很麻烦,有没有办法,就是删除所有子目录下的BAT和DAT的文件,而保证del.bat 不被删除?

请教一下大家~
作者: away    时间: 2014-1-22 07:06

如果是我的话,我会首先考虑用for和if来做排除自我这个效果。
像这样:
  1. @echo off
  2. for /r “%cd%” %%i in (*.bat *.dat) do (
  3. if not "%%i"=="%~f0" (
  4.   del "%%i"
  5. )
  6. )
复制代码

作者: fastslz    时间: 2014-1-22 11:45

首先纠正你一个错误,bat文件名不能使用cmd内部命令的,用del.bat文件名本身就是错
作者: CrLf    时间: 2014-1-25 18:04

  1. del *.bat  <%0 2>nul
复制代码
回复 3# fastslz

内部命令是优先的,外部命令才会出问题
不过用命令作为脚本名称总不是个好习惯




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2