我正在使用 Windows 10 专业版。我想创建一个批处理文件:
- 打开 Firefox 浏览器,
- 导航到页面
- 一分钟后关闭浏览器。
- 重复步骤 1 至 3。
到目前为止,我已经找到了可以在批处理文件中写入以下代码的方法:
@echo off
start "C:\Program Files\Mozilla Firefox\firefox.exe" "http://testmywebsiteloadspeed.com"
ping -n 1 -w 60
但这没有任何作用。另外我如何实现 3 和 4?
答案1
使用GOTO
尝试以下批次:
@echo off
set loopCount=50
:loop
start "C:\Program Files\Mozilla Firefox\firefox.exe" "http://testmywebsiteloadspeed.com"
set /a loopCount=%loopCount%-1
if %loopCount%==0 GOTO:EOF
timeout /t 60
taskkill /im firefox.exe
timeout /t 5
GOTO :loop
:loop
定义一个GOTO
点。timeout /t 60
等待 60 秒taskkill /im firefox.exe
将终止 Firefox 进程GOTO :loop
将重新路由回脚本的开头。
笔记:这将终止所有正在运行的 Firefox 进程。我认为 Firefox 通常一次只允许一个进程。
有限循环使用GOTO
为了对特定次数的迭代执行此操作,您可以set /a
对 loopCount 变量进行一些数学运算。
@echo off
set loopCount=50
:loop
start "C:\Program Files\Mozilla Firefox\firefox.exe" "http://testmywebsiteloadspeed.com"
set /a loopCount=%loopCount%-1
if %loopCount%==0 GOTO:EOF
timeout /t 60
taskkill /im firefox.exe
timeout /t 5
GOTO :loop
每次循环运行时,该set /a loopCount=%loopCount%-1
行都会将 loopCount 的值减一。if %loopCount%==0 GOTO:EOF
当它达到 0 时,该行将退出脚本。
GOTO:EOF
表示“转到文件末尾”,这将绕过文件中的任何其他代码。
使用FOR /l
另一种解决方案是使用FOR
带开关的循环/l
,但我在使用嵌套循环时遇到了问题,所以我通常坚持使用GOTO
像这样的简单批处理文件。不过,我希望这在未来能对某些人有所帮助。
@echo off
for /l %%x in (1, 1, 50) do (
start "C:\Program Files\Mozilla Firefox\firefox.exe" "http://testmywebsiteloadspeed.com"
set /a loopCount=%loopCount%-1
if %loopCount%==0 GOTO:EOF
timeout /t 60
taskkill /im firefox.exe
timeout /t 5
)
分解FOR /l
命令:
- 第一个论点就是你开始的地方。
- 第二个参数是要采取多大的步骤。(这与您的特定示例无关,因为您根本不使用该值。)
- 第三个论点是何时停止。