Windows环境下的异常文件删除

1.如何删除windows系统下一些特殊字符开头的文件

Windows 下不能够以下面这些字样来命名文件/文件夹:
aux|prn|con|nul|com1|com2|com3|com4|com5|com6|com7|com8|com9|lpt1|lpt2|lpt3|lpt4|lpt5|lpt6|lpt7|lpt8|lpt9    但是通过cmd的copy命令即可实现:D:\>copy piaoyi.asp \\.\D:\lpt6.piaoyi.asp    前面必须有 \\.\

这类文件无法在图形界面删除,只能在命令行下删除:

D:\>del “\\.\D:\lpt6.piaoyi.asp”
D:\>del “\\.\D:\lpt3.1.asp;.jpg”

如果提示找不到文件错误,则可以先解除RHSA只读属性:

D:\>attrib -s -h -r “\\.\D:\lpt3.1.asp;.jpg”
D:\>del “\\.\D:\lpt3.1.asp;.jpg”

注意:因为路径中有分号; 所以需要用双引号,否则,路径找不到。
然而在IIS中,这种文件又是可以解析成功的。Webshell中的 “不死僵尸” 原理就在这。     删除这类文件可以用下面的方法:
最简单也是最方便的,通过命令删除:

del /f /a /q \\?\%1
rd /s /q \\?\%1

把上面的命令保存为.bat后缀名称的文件,然后把不能删除的文件或者文件夹拖到bat文件上就可以。

或者是通过命令行来进行处理,如下是虚拟主机环境下的场景:

D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs>dir
 驱动器 D 中的卷没有标签。
 卷的序列号是 841D-EE5E

 D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs 的目录

2017-12-07  16:49    <DIR>          .
2017-12-07  16:49    <DIR>          ..
2017-12-13  09:05               151 t.asp
2017-10-10  10:09                35 test_asp.asp
2017-10-10  10:11                67 test_aspx.aspx
2017-05-08  07:21               528 zzy_temp_index.html
               4 个文件            781 字节
               2 个目录 19,771,199,488 可用字节

D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs>attrib
A            D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs\lpt2.t.asp
A            D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs\lpt5.t.asp
A            D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs\t.asp
A            D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs\test_asp.asp
A            D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs\test_aspx.aspx
A            D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs\zzy_temp_index.html

使用dir命令时,是无法看到lpt*.t.asp文件,实际上文件是存在的,以lpt2/lpt5 开头的文件被当成系统文件了。

可以通过如下 方式在命令行删除:

1、去除文件的SHR属性(具体的属性设置见attrib /?)

D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs>attrib -s -h -r \\.\D:\vhost\
965a26899363fa00cf4dc2a26bcae909\httpdocs\lpt2.t.asp

D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs>attrib -s -h -r \\.\D:\vhost\
965a26899363fa00cf4dc2a26bcae909\httpdocs\lpt5.t.asp

2、直接删除是无法删除的

D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs>del lpt2.t.asp
文件名、目录名或卷标语法不正确。

3、使用特定的格式进行删除(即在文件完整路径前加\\.\)

D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs>del \\.\D:\vhost\965a26899363
fa00cf4dc2a26bcae909\httpdocs\lpt5.t.asp

D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs>del \\.\D:\vhost\965a26899363
fa00cf4dc2a26bcae909\httpdocs\lpt2.t.asp
D:\vhost\965a26899363fa00cf4dc2a26bcae909\httpdocs>attrib /?
显示或更改文件属性。ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
       [drive:][path][filename] [/S [/D] [/L]]
  + 设置属性。
  – 清除属性。
  R 只读文件属性。
  A 存档文件属性。
  S 系统文件属性。
  H 隐藏文件属性。
  I 无内容索引文件属性。
  [drive:][path][filename]
      指定 attrib 要处理的文件。
  /S 处理当前文件夹及其所有子文件夹中的匹配文件。
  /D 也处理文件夹。
  /L 处理符号链接和符号链接目标的属性。

2. 如何删除包含点(.)结尾的文件(夹):

1、命令行 

rd /s ” ..\”

2、使用winrar压缩软件(Windwos 2008R2上不行,Windows 2012R2上可行)

删除包含以.结尾的文件(夹)

3. 文件名太长无法删除

1、在要删除的文件所在文件夹(httpdocs)同级新建一个空文件夹test 

2、然后在要删除的文件夹目录执行:robocopy test httpdocs /purge将会清空文件夹内的文件

3、最后删除这两个文件夹,这样就解决了无法删除文件名过长的文件

发表评论