Board logo

标题: 批处理如何导出文件服务器上文件夹权限? [打印本页]

作者: 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把权限导出来。

我通过论坛的高手已经把一级目录列出来,并导出权限了。二级目录不知道怎么列出清单。
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /ad-h') do (echo %~dp0%%i>>a.txt)
复制代码
  1. @echo off
  2. for /f "delims=" %%i in (dir_1.txt) do (
  3. cacls "%%i" /C >>full.txt
  4. )
复制代码
下面不会写了。
不知道论坛的高手还有其他方法吗?或者其他思路。
作者: apang    时间: 2013-6-19 10:27

本帖最后由 apang 于 2013-6-19 10:39 编辑

或许可以这样?
  1. @echo off
  2. (for /d /r "D:\" %%a in (*) do (
  3.    for %%b in ("%%a\..\..\..") do if "%%~nxb"=="" cacls "%%a" /C
  4. ))>List.txt
  5. 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