以下のコードは、そのユーザー名に基づいてディレクトリのアクセス許可を定義するいくつかのファイル (「*_perms.txt」で終わる) を含むフォルダーを実行することです。理想的には、コードはある時点でディレクトリと拡張子を削除して、.txt ファイルの名前をユーザーとして使用するだけです。
今のところ、コードはファイルを繰り返し処理することで機能します。許可ユーザー名を尋ねる; 許可レベルが続きます。次に、アクセス許可を設定するファイル内のリストされたディレクトリを繰り返します。
そうでないことを除いて。
ファイルを実行してユーザーとレベルを入力すると、入力された内容が認識されないように見えますが、代わりに前回の実行で最後に入力された値が使用されます (すべて)。
私はバッチ処理に完全に慣れていないので、未解決のコーディング エラーや慣行はご容赦ください。また、コードに関するその他のアドバイスも大歓迎です。
:: 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%
)
)