标题: 批处理如何导出文件服务器上文件夹权限? [打印本页]
作者: ling7sai5 时间: 2013-6-19 09:48 标题: 批处理如何导出文件服务器上文件夹权限?
下面是我能想到的:
cacls可以查看文件夹权限,但是一导出要么就指定一个,要么就会全部文件夹文件权限,文件服务器好几百个G,全导的话量太大了。
指定目录的话就只能指定一个。用for的话,就要有个全部文件目录的txt。现在这个txt怎么弄呢?一级目录的清单好列。那二级目录呢?三级目录呢?
比如D盘下有文件夹:1、2、3 1下面有4 、 2下面有5 、 3下面有6 ; 4下面有7、 5下面有8、 6下面有9。就先弄3级目录,一般统计到3级目录也差不多了。
批处理在D盘根目录运行。
最好结果就是能通过批处理列出一个清单,包括3级目录:如a.txt里面是:
D:\1
D:\1\4
D:\1\4\7
D:\2
D:\2\5
D:\2\5\8
D:\3
D:\3\6
D:\3\6\9
或者
D:\1
D:\2
D:\3
D:\1\4
D:\2\5
D:\3\6
D:\1\4\7
D:\2\5\8
D:\3\6\9
不行的话可以使用多个批处理。多次列出目录:如:A.TXT 、 B.TXT 、 C.TXT
A.TXT:
D:\1
D:\2
D:\3
B.TXT:
D:\1\4
D:\2\5
D:\3\6
C.TXT:
D:\1\4\7
D:\2\5\8
D:\3\6\9
这样用for调用txt下面的路径通过cacls把权限导出来。
我通过论坛的高手已经把一级目录列出来,并导出权限了。二级目录不知道怎么列出清单。- @echo off
- for /f "delims=" %%i in ('dir /b /ad-h') do (echo %~dp0%%i>>a.txt)
复制代码
- @echo off
- for /f "delims=" %%i in (dir_1.txt) do (
- cacls "%%i" /C >>full.txt
- )
复制代码
下面不会写了。
不知道论坛的高手还有其他方法吗?或者其他思路。
作者: apang 时间: 2013-6-19 10:27
本帖最后由 apang 于 2013-6-19 10:39 编辑
或许可以这样?- @echo off
- (for /d /r "D:\" %%a in (*) do (
- for %%b in ("%%a\..\..\..") do if "%%~nxb"=="" cacls "%%a" /C
- ))>List.txt
- pause
复制代码
作者: ling7sai5 时间: 2013-6-19 10:48
回复 2# apang
偶像啊。挺好用的。就是没怎么看懂。我再慢慢研究研究。我太肤浅了哈哈
作者: ling7sai5 时间: 2013-6-19 11:16
回复 2# apang
大神,怎么文件量少挺快的。我放服务器一运行半天没反应。服务器1TB多点的数据量。是不是读取的信息量大了点。可否优化?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |