在Windows平台上对文件和文件夹命名是不能使用\/:*?"<>|等特殊字符的,但我们可以利用这个系统BUG在命令行模式下创建包含这些字符的文件或文件夹,Windows平台对包含这类特殊字符的文件或文件夹处理就有点“乱”,一般来讲,实际显示的名称都不是真实的文件名,所以一旦进行删除等操作时,就会报告“无法删除文件”、“找不到路径”等等错误。很多软件正是利用这点,对某些文件进行隐藏或“加密”,当然了,看完本文后你也一样会使用,可以忽悠一下新手。 一、DOS命名规则与Windows命令提示符1、DOS系统下的文件名规则 A、文件名由1~8个字符组成,字符可包含英文字母、数字和一些特殊字符,但是不能包含*,?.<>:;[]|等特殊字符;文件名不区分大小写且文件名中间不可包含空格; B、扩展名由0-3个字符组成,无空格和特殊字符; 当实际文件名超出8.3格式时,需进行DOS下的文件夹或文件名缩写显示,规则如下:文件名前6个字符+~1正好是8个字符作为文件名,如果前六个相同的,依次用~2、~3、~4累加,如果文件名中有空格则会自动去掉,向后移位计算(一个中文字算两个字符)。 2、Windows系统下的命令提示符: windows下的命令提示符只是模拟DOS特性但非环境,支持大部分DOS操作并加入“独家”的大量快捷管理功能,实际仍然是按照WIN32模式运行的,所以大部分的纯DOS实模式下程序都是无法在命令提示符下运行的,总结起来,实际Windows的命令提示符是个山寨版“DOS系统”。 二、Windows下非法文件的创建和删除我们从上文可以看出,实际上DOS系统也是禁止使用一些特殊字符作为文件名的,当然Windows控制更加严谨,所以允许使用非法文件名是应该来说是NT系统的一个BUG,当然也不排除是微软有意留的特殊私密用途,一直到Windows 7上都没把这个“问题”改善“,是不是有意的只有天知道。下面看一下几种非法文件的创建和删除。在”开始“菜单——”运行“,输入cmd,回车即可进入,下面的小标题中现象均指在Windows explorer下显示情况。先把典型的报错图贴出来: 图1——无法删除文件出错图 图2——典型的打开错误图
1、可见、无法打开、无法删除的非法文件 创建 G:\>md test..\ 注:Windows显示test.,无法打开,无法删除 拷贝 G:\>copy metsky.txt test..\ 打开 G:\>start G:\test..\ 要打开该类型文件,还可以通过dir /x命令查看该文件夹的别名(类似:AE216~1这样的名字),然后在运行里或浏览器中直接输入G:\别名回车也可打开。 删除 G:\>rd test..\ G:\>rd /S /Q test..\ 注:带/S参数表示删除目录树,相当于DELTREE,带/Q表示删除不再确认。 改名 使用dir /x命令查看该文件夹的别名,如下图: 上图中a..\的文件夹别名是ae216~1,所以我们可以通过其别名进行改名,如下: rename ae216~1 b 这样就可以把该文件改为正常名字。 2、可见、可打开、不可删除的非法文件 创建 G:\>md "test / " 注意,例句中有空格,该文件可见,可打开,可在该文件夹下创建、拷贝、删除文件,但不可删除。 打开 G:\>start G:\test..\ 删除 G:\>rd "test / " 3、隐藏、不可打开的非法文件 在DOS系统中(实际上WINDOWS系统和LINUX也可以使用),“.”代表当前目录,“..”代表上级目录,正式利用这点,来创建混淆目录。 创建(FAT可以,NTFS不可以) G:\>md ...\ 注:该文件夹在windows上不可见、不可打开、不可删除。 打开 G:\>start G:\...\ 删除 G:\>rd ...\
如果大家遇到类似的文件或文件夹(天缘知道矮人工具箱和一键还原就喜欢整这个隐藏文件夹),就可以采用上述方法进行删除,当然你也可以使用专门的工具比如冰刃、Unlocker、文件粉碎机等等,进行删除。 为了安全起见,请您谨慎使用带有匹配符的DOS删除语句(类似del /f /a /q \\?\%test这样的语句),一不小心可能会全盘删除,本文不再介绍。 补充: 1、Windows 9X无法识别“不可显示的 ASCII 字符”作为文件名 2、Windows XP不识别文件名使用UNICODE 字符 3、保留设备名作为文件名从VISTA开始取消限制 4、超长文件目录名(超过255字节,如在Win平台输入最多输入244个字节)可能会让系统死机 5、把驱动器盘符改成中文看看
如果还想深究一下,还可以做做下面的试验。 1、目录下再创建个“同名文件夹”的显示效果 2、在“同名文件夹”下相互拷贝数据及拷贝数据后的现象 3、删除某个文件夹后另一个文件夹的特性变化 4、...... |