首页 > 解决方案 > 在批处理文件中的for循环之后执行命令?

问题描述

我有一个批处理文件,它目前做了两件事,它首先进入所需的目录,然后它将运行一个 for 语句来删除不是某个文件的每个文件,bat 文件的内容如下所示:

cd "bin\drivers" && for %%i in (*.*) do if not %%i == lol.exe del %%i

这完美地工作,但我想在这个 for 语句执行后做一些其他的事情,像这样:

cd "bin\drivers" && for %%i in (*.*) do if not %%i == lol.exe del %%i && cd ../../../ && start server

但这样做的问题是,虽然它确实执行了 for 循环之后的语句,但 for 循环只执行一次迭代,所以它只删除一个文件并移动到 bat 文件中的下一个语句(即 cd,然后启动服务器)。有什么办法可以让 for 语句之后的语句在整个 for 循环完成而不是 1 次迭代之后执行?

标签: for-loopbatch-filecmd

解决方案


这将首先循环,一旦循环完成,它将只执行服务器。

@echo off
if not exist "bin\drivers" goto :eof
cd /d "bin\drivers"
for %%i in (*) do if not "%%~i" == "lol.exe" del "%%~i"
cd /d ..\..\..\
start server

推荐阅读