Я написал приведенный ниже код для моего требования, но всякий раз, когда он выполняется во второй раз, powershell не фиксирует путь к исполняемому файлу.

powershell -command "& {get-process 'program' | format-list path}" > temp.txt

find /i "P1" temp.txt
if not errorlevel 1 (echo "P1") else (start "" "<path_of_p1>\program.exe")

find /i "P2" temp.txt
if not errorlevel 1 (echo "P2") else (start "" "<path_of_p2>\program.exe")

find /i "P3" temp.txt
if not errorlevel 1 (echo "P3") else (start "" "<path_of_p3>\program.exe")
exit

0