如何在CMD中结合命令生成含访问权限的文件文件夹列表?
生成带权限的文件/文件夹列表方法
方法1:结合dir与icacls的批处理脚本
如果需要保留dir /b/s/o的遍历逻辑,可通过批处理脚本将每个路径的权限信息附加输出:
@echo off setlocal enabledelayedexpansion for /f "delims=" %%i in ('dir /b/s/o') do ( echo ====== echo 路径: %%i echo 权限详情: icacls "%%i" | findstr /v "已成功处理" )
执行后会依次输出每个文件/文件夹的路径,以及对应的权限列表,findstr用来过滤掉icacls的成功提示行。
方法2:直接用icacls递归生成(替代dir)
如果不需要dir的特定排序规则,直接用icacls的递归参数更高效:
icacls * /t /c > permissions_list.txt
参数说明:
*:匹配当前目录下所有项目/t:递归处理所有子目录/c:遇到错误时继续执行> permissions_list.txt:将结果保存到指定文件
方法3:PowerShell命令(格式更灵活)
用PowerShell可以生成结构化的表格输出,可读性更强:
Get-ChildItem -Recurse | ForEach-Object { [PSCustomObject]@{ 路径 = $_.FullName 权限 = (Get-Acl $_.FullName).Access | ForEach-Object { "$($_.IdentityReference) - $($_.FileSystemRights)" } -join "`n" } } | Format-Table -AutoSize | Out-File "permissions_list.txt"
该命令会递归遍历所有项目,将路径和对应的权限(按用户/组划分)整理成表格后保存到文件。
内容的提问来源于stack exchange,提问作者tales duran
相关产品推荐
相关产品推荐

