首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在同一个批处理文件中运行for循环之后运行通用命令?

如何在同一个批处理文件中运行for循环之后运行通用命令?
EN

Server Fault用户
提问于 2016-12-15 17:58:56
回答 2查看 1.4K关注 0票数 0

我正在尝试创建一个批处理文件,首先我希望运行for循环来清除事件日志。然后运行一些不同的命令,如like、/scannow或systeminfo。但是如果我把这些命令放在for循环之前。它在运行for循环之前停止。如果我在写入for循环之后放置这些命令,那么在运行for循环之后它就会关闭cmd。有人可以提供正确的脚本来完成所有这些任务与一个批处理文件。

示例:

代码语言:javascript
复制
for /f %x in ('wevtutil el') do wevtutil cl "%x"
EN

回答 2

Server Fault用户

发布于 2016-12-15 19:00:35

从批处理片段来看,唯一真正的“意外结果”是在前两个相关的IF语句之间缺少一个符号。否则,以下内容将在我的Windows 7和Windows 2008服务器上运行(我削弱了事件日志的实际清除):

代码语言:javascript
复制
FOR /F "tokens=1,2*" %%V IN ('bcdedit.exe') DO SET adminTest=%%V & IF (%adminTest%)==(Access) goto :noAdmin 
for /F "tokens=*" %%G in ('wevtutil.exe el') DO (call :do_clear "%%G") 
    pause
    systeminfo.exe
    pause
    echo. 
    goto :exit
:do_clear 
    @echo =============
    echo clearing %1 
    wevtutil.exe gl %1 

    @echo =============

    goto :eof 

:noAdmin 

:exit   

一个未调用的批处理程序:将退出而不返回到第一个批处理程序。我不知道你的剧本怎么会过早退出。

票数 1
EN

Server Fault用户

发布于 2016-12-15 23:06:02

代码语言:javascript
复制
cls
@ECHO OFF
pause
FOR /F "tokens=1,2*" %%V IN ('bcdedit') DO SET adminTest=%%V
IF (%adminTest%)==(Access) goto noAdmin
for /F "tokens=*" %%G in ('wevtutil.exe el') DO (call :do_clear "%%G")
sfc /scannow
Pause
echo.
echo goto theEnd
:do_clear
echo clearing %1
wevtutil.exe cl %1
goto :eof
:noAdmin
:EXIT
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/820964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档