如何用for命令编写批处理对指定名称文件夹批量执行icacls命令
实现方案
分两种使用场景,按需选择即可:
1. 直接在CMD窗口中运行
for /r "c:\inetpub\wwwroot" /d %i in (UploadFiles Newsletter) do @if exist "%i" icacls "%i" /deny IUSR:(OI)(CI)(X)
参数说明:
/r "c:\inetpub\wwwroot":指定从c:\inetpub\wwwroot目录开始递归遍历所有子层级/d:仅匹配文件夹,过滤掉文件结果- 括号内的
UploadFiles Newsletter是要匹配的文件夹名称,多个名称用空格分隔,可自行添加你需要的其他文件夹名 @if exist "%i":避免匹配到不存在的路径时抛出错误
2. 写入.bat批处理文件运行
批处理文件中for循环的变量需要把单百分号改为双百分号,命令如下:
for /r "c:\inetpub\wwwroot" /d %%i in (UploadFiles Newsletter) do @if exist "%%i" icacls "%%i" /deny IUSR:(OI)(CI)(X)
注意事项
正式执行前建议先把命令中的icacls替换为echo,先打印所有待执行的命令确认路径匹配无误,再换回icacls执行,避免误改权限:
:: CMD直接运行测试用命令 for /r "c:\inetpub\wwwroot" /d %i in (UploadFiles Newsletter) do @if exist "%i" echo icacls "%i" /deny IUSR:(OI)(CI)(X)
内容的提问来源于stack exchange,提问作者eyalb
相关产品推荐
相关产品推荐

