dir-takeown-icacls-rd命令的用法

windows总是会遇到不能删除某目录或文件.
原因我知道的有两种:
1.文件当前被某个进程占用.(这种情况只能杀掉这个进程)
2.文件所有者没用足够权限.(修改文件所有者和权限)

dir,icacls,rd. dos命令都可以通过 此命令 /?来查看此命令的帮助信息.

dir与linux下的ls比较相似.通过dir /?就可以查看此命令的用法

例如输入命令:
dir .\ /a:d /q

.\表示当前目录
/a显示具有指定属性的文件.后面加上:d表示显示目录
/q显示文件所有者.

所以该命令表示:显示当前目录下的所有目录,并且显示目录的所有者.

takeown该工具以重新分配文件所有权的方式允许管理员重新获取先前被拒绝访问,一般要以管理员身份执行,以管理员身份打开命令提示符的方法:win+x–>a

同样通过takeown /?可以查看此命令的用法
例如输入命令:
TAKEOWN /F "C:\$Windows.~BT" /R /A
表示将”C:$Windows.~BT”这个文件夹(包括子目录和子文件)的所有权让管理员接管.
/R表示以递归子目录和子文件
/A将所有权给于管理员组,而不是当前用户。

icacls这个命令比较强大

同样通过icacls /?可以查看此命令的用法
此命令具有与linux下的chown和chmod的类似功能.

例如输入命令:
icacls cpu-z /setowner xin /t /c
cpu-z表示需要修改所有者的这个目录
xin表示修改为xin这个文件所有者
/t表示在cpu-z目录下的所有匹配文件/目录上执行此修改所有者操作.即以递归方式
/c表示操作过程中出错仍继续执行
所以此命令表示:修改cpu-z目录及该目录下的所有子目录与文件的所有者为xin

例如输入命令:
icacls cpu-z /grant Users:F /t /c
cpu-z表示需要修改权限的这个目录
Users表示用户组,F表示完全控制权限,两者合并表示给Users赋予完全控制的权限
/t与以上命令相同
/c与以上命令相同

通过rd /?看到此命令的用法比较简单,它与linux下面的rm相似

例如输入命令:
rd cpu-z /s /q

cpu-z表示要删除的目录
/s表示以删除该目录以及下面的子目录或文件
/q表示以静默方式(即不提示是否确认要删除)
所以此命令表示以静默方式删除cpu-z目录以及下面的所有子目录或文件

小结一下,对于目录C:$WINDOWS.~BT,可以使用以下三条命令尝试一下:

takeown /f "C:\$WINDOWS.~BT" /r /a
icacls "C:\$WINDOWS.~BT" /grant Users:F /t /q /c
rd "C:\$WINDOWS.~BT" /s /q
不过还是提示一下,删除东东需谨慎,可能一回车,文件就再也不回头了!

你可能感兴趣的:(windows,dos)