我正在尝试创建一个batch-file,它会在运行其他内容之前检查我的mysql server
是否已启动并正在运行。我正在尝试通过读取.pid
文件({set
到变量%pid%
),然后要求tasklist进行检查来做到这一点。
问题在于tasklist
似乎不喜欢%
符号,因此这样做有点困难。每次尝试执行此操作都会得到:
ERROR: The search filter cannot be recognized.
我认为您无法以其他任何方式读取变量,但是我对批处理脚本还比较陌生,所以我可能是错的。
这里有一个脚本副本:
set pid=C:\mysql\data\DESKTOP-MG3L38L.pid
rem making sure the pid var exists
type %pid%
tasklist /fi 'pid eq %pid%
答案 0 :(得分:0)
您真正的问题是,您没有Set
将变量设置为文件第一行的内容;您Set
将其设置为文件名。
要将其设置为文件第一行的内容,您将使用:
@Set /P "PID="<"C:\mysql\data\DESKTOP-MG3L38L.pid"
因为您没有正确设置它,所以TaskList
试图过滤文件名C:\mysql\data\DESKTOP-MG3L38L.pid
作为数字整数序列,显然会失败。
一旦解决,您就可以运行TaskList
命令:
@TaskList /Fi "PID Eq %PID%" /Fi "Status Eq Running"