下面的代码将运行一个文件夹,该文件夹包含多个文件(以“*_perms.txt”结尾),这些文件根据该用户名定义了目录的权限。理想情况下,代码将在某些时候删除目录和扩展名,只使用 .txt 文件的名称作为用户。
现在,代码通过遍历文件来工作;询问权限用户名是什么;其次是权限级别;然后遍历文件中列出的目录设置权限。
除非它没有。
当我运行文件并输入用户和级别时,它似乎没有确认输入的内容,而是使用上次运行的最后输入的值(对于所有)。
我是一个完整的批处理n00b,所以请原谅任何突出的编码错误或做法。也非常感谢有关代码的任何其他建议。
:: Get the files which define the permissions
FOR /R %perms% %%i IN ("*_perms.txt") DO (
echo %%i
:: TO-DO - remove path and file extension
echo ++++ %%i Folder ++++ >> %logFile% & echo.
SET /P permUser=:Enter the user.
SET /P permType=:Enter the user access right.
:: Set the permissions for the folders specified
FOR /F %%j IN (%%i) DO (
::echo %%j
::echo %permUser%
echo %VSS_home%\%%j
:: N.B - uses the last entered parameter on the command-line.
:: also does not get recorded onto log file.
net share permDir=%VSS_home%\%%j /grant:%permUser%,%permType% /users:%MaxUsers% /remark:%%j >> %logFile%
echo User: %permUser%, Rights: %permType% >> %logFile%
)
)