windows 上的任务列表有没有办法读取由 set 生成的变量?
Is there a way for tasklist on windows to read variables made by set?
我正在尝试为它创建一个 batch-file 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 检查。
问题是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"
我正在尝试为它创建一个 batch-file 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 检查。
问题是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"