Windows系統中刪除com,aux,lpt,con,prn,nul等文件夾結 (轉文)

By admin, June 2, 2014 8:45 pm

今天发现一客户的网站中出现了很多隐藏的文件,文件名开头均为com,aux,lpt,con,prn,nul等字母开头的.还发现有一名为文件为”PRN.asp:.jpg”的文件.删除改名都不行.
google了一下,发现Windows 下不能够以下面这些字样来命名文件/文件夹,包括:“aux”“com1”“com2”“prn”“con”和“nul”等,因为这些名字都属于设备名称,等价于一个 DOS 设备,如果我们把文件命名为这些名字,Windows 就会误以为发生重名,所以会提示“不能创建同名的文件”等等。
当然,有一些特殊的方法可以偷机取巧,建立以这些设备名为名的文件夹,比如我们在命令提示符下执行“md C:\aux\\”,就在 C 盘建了一个名叫 aux 的文件夹。此文件夹虽然可以访问,也可以建立子文件夹,但却无法删除,因为 Windows 不允许以这种方式删除设备。在系统看来,这个 aux 文件夹就是设备。
那么,如何删除这样的文件/文件夹呢?我们只要按照完整的 UNC 路径格式,就是网上邻居的路径格式,正确输入文件路径及文件名即可。比如要删除 C 盘下的 aux 文件夹,可在命令提示符下执行:rd /s \\.\C:\aux,rd 是命令提示符删除文件夹的命令,/s 参数表示从所有子目录删除指定文件。再比如要删除 C 盘 temp 文件夹下的 nul.exe 文件,在命令提示符下执行:del \\.\C:\temp\nul.exe 即可。如果有属性可以用attrib命令去掉相关属性,attrib -s -r -h -a \\.\c:\temp\nul.exe再删除.
至于PRN.asp:.jpg,采用del \\.\D:\****\PRN.asp:.jpg的方式是删除不了的.只好用rd删除整个文件夹,有属性的话用attrib命令去掉属性.