我正在通过桌面上的 .bat 文件使用 Maven 运行 Selenium。现在,当我第一次单击时,它会运行。我如何避免它在我再次单击时运行?例如,它应该显示一些消息,表明实例已在运行。
这是我的脚本:
cd C:\Automation\MavenHorizonAutomationFramework
mvn test
答案1
使用类似:
REM Test for lock file
IF EXIST lock.txt (
REM Do nothing
) ELSE (
REM Create lock file
ECHO > lock.txt
REM Call your applications here
REM Delete the lock file afterwards
DEL lock.txt
)
由于您已经编写了一个批处理文件,我假设您能够将其集成到您的文件中。
如果要增强它,则应将进程 ID 写入文件lock.txt
,如果存在,则在假设它正在运行之前测试文件中的进程号是否也存在。这样,如果进程终止并且锁定文件未被删除,您就不会在下次运行批处理文件时错误地认为它仍在运行。
答案2
您可以在脚本旁边写一个锁定文件,并在脚本末尾将其删除。启动脚本时,如果文件存在,则应显示消息并退出。如果文件不存在,它可以继续运行。
这就是 yum 和 apt 的做法。
答案3
尝试在 .bat 的开头使用它。它将检查另一个 cmd.exe 是否已在运行,如果是,则它将退出。
set cmdcount="wmic process where name="cmd.exe" | find "cmd.exe" /c"
FOR /F "tokens=*" %%i IN (' %cmdcount% ') DO SET X=%%i
IF %x%==2 GOTO resume exit
:Resume cd C:\Automation\MavenHorizonAutomationFramework mvn test