windows 上的任务列表有没有办法读取由 set 生成的变量?

Is there a way for tasklist on windows to read variables made by set?

我正在尝试为它创建一个 which checks if my mysql server is up and running before running other stuff. I'm trying to do this by reading the .pid file, (set to a variable, %pid%), then ask 检查。

问题是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%

您真正的问题是您没有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"