Есть ли способ для списка задач на окнах, чтобы прочитать переменные, сделанные set? - PullRequest
0 голосов
/ 27 апреля 2019

Я пытаюсь создать , который проверяет, работает ли мой mysql server, прежде чем запускать другие файлы. Я пытаюсь сделать это, читая файл .pid, (set в переменную, %pid%), затем спрашиваю проверить его.

Проблема в том, что 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%

1 Ответ

0 голосов
/ 27 апреля 2019

Ваша настоящая проблема в том, что вы не 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"
...