批处理文件到具有特定名称的文件夹和子文件夹上的 运行 命令

batch file to run command on folder and sub-folders with specific name

我需要运行一个命令

icacls "foldername" /deny IUSR:(OI)(CI)(X)

在 c:\inetpub\wwwroot

中名称为“UploadFiles”或“Newsletter”或“somethingelse”的每个文件夹上

我使用 dir 命令提取所有文件夹,然后 运行 每个“行”(文件夹)的长批处理文件

那样

icacls "folder1/UploadFiles" /deny IUSR:(OI)(CI)(X)
icacls "folder2/UploadFiles" /deny IUSR:(OI)(CI)(X)
icacls "folder3/Newsletter" /deny IUSR:(OI)(CI)(X)
icacls "folder4/ssss/Newsletter" /deny IUSR:(OI)(CI)(X)

如何使用 for 命令完成同样的工作?

您可以创建一个包含所有匹配条件的变量,然后 运行 为每个匹配创建一个 for 循环:

@echo off
set "vars="*UploadFiles*" "*Newsletter*" "*somethingelse*""
for /D %%i in (%vars%) do icacls "%%~i" /deny IUSR:(OI)(CI)(X)

这样您就可以使用相关搜索条件更新 %vars% 变量。