批处理文件循环播放,直到显示某些文本

时间:2019-03-21 12:35:40

标签: loops batch-file icacls

当前有一个批处理文件,用于使用takeown和icacls命令替换NTFS权限,我已将这些命令添加到循环中,并且效果很好。

当显示特定响应时,是否可以退出循环?诸如“无法处理0个文件”之类的东西?我使用的代码如下,希望这对其他人也有帮助。

# create new subplot for combined graph
fig, axs = plt.subplots(nrows=1, ncols=1)
axs.plot(range(len(all_y)), all_y)

非常感谢

1 个答案:

答案 0 :(得分:1)

我认为您可能会以错误的方式出错,因此您需要相应地进行调整,但是如果满足要求,我们将使用findstrerrorlevel0 ),我们退出循环。

@echo off
setlocal enabledelayedexpansion
for /l %%x in (1,1,1000) do (
    echo %%x
    for /f "delims=" %%i in ('takeown.exe /R /A /F "\\fileserver\share\" /D N ^| findstr /i "Failed processing 0 files"') do (
        set "error=%%i"
        if "!errorlevel!"=="0" goto :end
    )
    echo Finished takeown >> C:\Loopy.txt
    icacls.exe "\\fileserver\share\" /grant "Domain\Group":F /grant "Domain\Group":R /T /C
    echo Finished icacls >> C:\Loopy.txt
    echo Loop %%x >> C:\Loopy.txt
)
goto :eof
:end
echo %error%