删除文件时提示“参数不正确”

作者: 来源: 日期:2011-4-11

网站被挂码常常出现带点的文件夹、或者特殊文件名的文件夹,按 Delete 删都删不掉。

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 即可。(有时候攻击者把 aux 这些名字藏得很深,我们不知道具体在哪个文件夹,如果希望来个一刀切,也可以形如 rd /s /q \\.\D:\site1\wwwroot,这样不会有任何提示 wwwroot 及其所有子文件夹就被干掉了。ITPOW编辑注)

相关阅读

相关文章