mysql - 在启动 wamp 之前如何检查现有的 .pid?

标签 mysql windows batch-file wamp wampserver

我正在寻找一种方法来确保它在启动之前尚未在其他计算机上运行。

我想到的最好方法是检查 MySQL 文件夹中是否存在现有的 .pid。
最简单的事情是修改快捷方式,但我认为这是不可能的。 所以我需要做几件事。

  1. 找出 MySQL 的存储位置
  2. 检查 .pid 文件是否存在,如果发现该文件,则会抛出错误,并用文件名减去扩展名来提示正在运行该文件的机器。
  3. 如果不存在,则继续启动 wamp,就像通常使用快捷方式一样。

完成。

如果有必要,我们可以询问用户一次 wamp 的存储位置,那么它就位于 %wamp%\bin\mysql 我尝试了这个脚本,但它没有正确执行,它打开了 2 个 cmd 窗口,然后暂停了。 谢谢 熊

@echo off  
cd "C:\google_drive\server\wamp64"
forfiles  /p bin\mysql\ /m *.pid /s /c "cmd /c goto error"
start wampmanager.exe
exit
:error
echo I'm sorry, Mysql is already running so I can't start WAMP for you. Shutdown WAMP on @FNAME before running again."
pause

最佳答案

您可以使用以下命令检查文件是否存在:

if exist "C:\google_drive\server\wamp64\bin\mysql\*.pid

但是根据你的描述,我猜,可能有多个 .pid 文件,所以有一个更好的选择:

setlocal enabledelayedexpansion
set "running="
for %%a in ("C:\google_drive\server\wamp64\bin\mysql\*.pid") do set "running=!running! %%~na,"
if "%running%" neq "" (
  echo I'm sorry, Mysql is already running so I can't start WAMP for you.
  echo Shutdown WAMP on: %running% before running again.
  pause
  goto :eof
)
start wampmanager.exe

关于mysql - 在启动 wamp 之前如何检查现有的 .pid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44231509/

相关文章:

MySQL 使用 max 函数通过子查询更新查询

mysql 'group by'子句不报错

mysql - 为什么 phpmyadmin 结果中的估计行数差异很大?

node.js - CMD批处理文件: How to use a text file to input commands

python - Windows 上的 GIMP - 从命令行执行 python-fu 脚本

windows - 批处理文件中的 "EXIT"无法覆盖以前命令的返回码

php - 使用PHP将图片上传到mysql数据库

windows - 将操作系统代码映射到同一逻辑空间的原因?

windows - 为什么我在 Windows 上运行 Perl one liner 时出现“找不到字符串终止符 "'”错误

php - 文件名、目录名或卷标语法不正确。 (代码 : 123)