我有一系列文件夹,用于接收工作人员使用复印机扫描的 .pdf 文件。Windows 2000 服务器上每个业务部门一个文件夹,因此:
Scan$
Unit 1\
Unit 2\
Unit 3\
我想要做的是编写一个批处理文件来创建一个名为的文件夹:
“临时区域 - 文件将在 14 天后被删除!”
并将其放入 Unit 1、2、3 的“根”文件夹中,以提醒员工不要长期将数据存储在那里。创建该文件夹后,我需要设置 NTFS 权限(可能使用),icacls
以仅允许域管理员访问我创建的文件夹,这样员工就无法删除它。
我之前写过批处理文件来创建“主”文件夹,从 .txt 中读取名称,例如for /f %%a in (users.txt) do ..icacls \\filer\Personal$\Home\%%a /grant:r "Company\Domain Admins:(OI)(CI)F"
我正在努力解决这个问题,任何帮助都值得感激:-)
答案1
您应该能够使用这个简单的脚本来实现这一点:
@ECHO off
SET _Path=\\unc\scan$
SET _FolderName=Temp area - files will be deleted after 14 days!
for /f "delims=" %%a in ('dir "%_Path%" /B /R /AD') DO (
mkdir "%_Path%\%%a\%_FolderName%"
icacls "%_Path%\%%a\%_FolderName%" <...>
)
分解
SET _Path=\\unc\scan$
Unit 1
设置一个变量,用于保存包含、Unit 2
、文件夹的文件夹路径Unit 3
。仅在一个地方设置此变量可使以后更改更加容易SET _FolderName=Temp area - files will be deleted after 14 days!
设置一个变量,保存要创建并锁定的文件夹的名称dir "%_Path%" /B /AD
列出指定路径中的子目录for /f "delims=" %%a in ('dir "%_Path%" /B /R /AD') DO
将循环遍历子目录mkdir "%_Path%\%%a\%_FolderName%"
使用指定的文件夹名称创建新的子目录icacls "%_Path%\%%a\%_FolderName%" <...>
将运行您的命令icacls
来设置权限。您必须用您想要设置的<...>
任何内容/grant
或权限进行替换。/deny