1. 现象: 将win7原装的系统的wim压缩文件用wimtools解压以后,生成的文件无法删除。wim格式:即windows imagine,windows的压缩镜像格式,常用作系统备份。
2.原因:其实wim解压出来的东西好像是一些硬链接,关闭工具后,链接链断裂,所以删除时,会提示目标不存在。
具体参见的ntfs文件系统中符号链接,软链接,硬链接的在上一篇文章中的介绍。 这些内容其实根本不怎么占空间,只是文件表项,也就是相当于linux中inode节点。但是文件多了也是要占一定的空间的。删除它们应该像删除普通的文件一样,用shift+delete 或者del命令,但是win7下的文件的有了ACL控制,即是文件访问等级控制,限制了用户的操作。
要删除文件就要使当前用户具有该文件的相应的权限。
3. 解决方法:
Win7下有些文件莫名其妙的就不让删除,报错是“您需要权限来执行此操作”,我明明是管理员权限,我没权限谁还能有?右键属性——“安全”——“高级”——“权限”、“所有者”通通改了,也不行。用360的粉碎机也没戏。上网查了查高手的文章。原来我只是差了一点点。少打了一个勾(所有者设置时的“替换子容器的对象和所有者”)然后就OK了!
首先选择要删除的文件或文件,右击-》属性:
2. 当文件比较多时,用命令批量删除:有用的命令有:attrib,cacls,icacls, del, rd, rmdir等,借助通配符可以事半功倍。
开始-》运行-》cmd -》启动命令行窗口: 输入help:会列出命令行所支持的所有命令的列表清单。
同样通过在命令行里输入: help 命令 #可以显示该命令的具体用法, 和linux下的man命令类似。
举例:如:
命令:attrib :可以去除文件的只读属性等。
命令之cacls:修改文件的相关的acl权限.
命令之cacls的替代命令icacls:
用命令的方式:1》修改相关的访问权限,2》进行删除。
删除一个目录中文件的方法: icacls * /grant 用户:(F, WDAC) /T && del /f /q /s *;
写了一个删除顶目录下的所有目录的的批处理,文件:
删除目录: del_dir.bat:
rem 对当前目录中的所有目录执行删除文件操作,"%%i" 是为了防止目录中带有空格
for /d %%i in (*) do call C:\Users\wzb\Desktop\test\del_file.bat "%%i"
删除当前目录下面的所有子目录和文件:
del_file_bat:
rem 进入当前目录
cd %1
rem 如果存在子目录,删除子目录(递归操作)
for /d %%j in (*) do call C:\Users\wzb\Desktop\test\del_dir.bat
rem 使当前用户对当前目录中的所有文件具有删除D(也可换成F,完全控制),和写入控制权限
icacls * /grant wzb:(D,WDAC)
rem 安静、强制、递归删除文件。
del /q /f /s *
rem 返回上级父目录
cd ..
rem 删除已经处理的空目录
rmdir /s /q %1
应用: 创建一个删除目录的批处理文件:
my_del.bat:
rem 删除当前目录中的所有目录
call C:\Users\wzb\Desktop\test\del_dir.bat
rem 删除当前目录中的所有文件
call C:\Users\wzb\Desktop\test\del_file.bat
pause
将my_del.bat 放入要删除的目录中,双击运行,即可删除当前目录中的所有目录和文件。
移植注意: del_dire.bat del_file_bat my_del.bat中的路径名:C:\Users\wzb\Desktop\test\ 改为即是存放这几个批处理文件的目录,用绝对路径。关于bat中的路径设置没有仔细研究,但是这种方法可行。
含有del_file.bat icacls中的对当前用户的授权,用户名字应该是系统正在使用的用户名。
后记:小心使用,删除后不放在回收站里。 除非用工具。 小心谨慎使用。