如何将用户列表输入批处理文件

时间:2014-01-24 00:56:36

标签: batch-file

我希望将users.txt中保存的用户列表输入到批处理文件中以重置权限。当我放一个*它将在文件夹列表中正确并重置权限,但我想限制权限设置的范围。列表中的每个用户都对应于我想要重新许可的文件夹的名称。

此脚本有效,但适用于每个文件夹,我无法限制范围。

cd C:\Users\matt\desktop\subinacl

for /D %%i in (*) do (

subinacl /file %%i /perm /grant=%%i=C "/grant=\domain admins=f"  "/grant=system=f"         "/grant=creator owner=f" /setowner=%%i 
subinacl /subdirectories %%i\* /perm /grant=%%i=f "/grant=domain admins=f"   "/grant=SYSTEM=f" "/grant=creator owner=f" /setowner=%%i )

这是我想要做的,但是使用文件夹名称列表重新许可这些文件夹并且它不起作用。它将users.txt输入grant = location而不是实际列表。

cd C:\Users\matt\desktop\subinacl
SET users=users.txt

for /D %%i in (%users%) do (

subinacl /file %%i /perm /grant=%%i=C "/grant=domain admins=f"  "/grant=system=f"  "/grant=creator owner=f" /setowner=%%i 
subinacl /subdirectories %%i\* /perm /grant=%%i=f "/grant=domain admins=f" "/grant=SYSTEM=f" "/grant=creator owner=f" /setowner=%%i )

非常感谢任何帮助。我希望从用户列表中调用批处理文件。

1 个答案:

答案 0 :(得分:0)

@echo off
cd C:\Users\matt\desktop\subinacl
SET users=users.txt

for /f "delims=" %%i in (%users%) do (
 for /D %%i in (*) do (

 echo subinacl /file %%i /perm /grant=%%i=C "/grant=domain admins=f"  "/grant=system=f"  "/grant=creator owner=f" /setowner=%%i 
 echo subinacl /subdirectories %%i\* /perm /grant=%%i=f "/grant=domain admins=f" "/grant=SYSTEM=f" "/grant=creator owner=f" /setowner=%%i
)

我没有使用过subinacl所以我只是回应了提议的命令。

就个人而言,我建议使用您的原始版本设置admin等权限,然后使用users.txt文件设置个人权限。正如我已经列出的那样,管理员等权限将再次应用于users.txt

中的每个条目