Вложенная команда cmd.exe внутри команды powershell.exe, вызываемой через cmd.exe - PullRequest
1 голос
/ 10 июля 2019

Можно ли настроить скрипт следующим образом:

file.exe [CMD(POWERSHELL(CMD))]

Вот мой код на данный момент, (в сочетании с ответами, которые я получил здесь) :

:RETURN
powershell -command "Start-Process -FilePath '\\my\file\path\myapplication.exe'"
powershell -command "if (gps | ? {$_.mainwindowtitle} | select name, id, mainwindowtitle | where {$_.Name -match 'myapplication'}) { Write-Output 'App verified, running in Taskbar.'} else { Write-Output 'App no running in Taskbar, checking again.' cmd.exe /c 'GOTO RETURN' }"

Приведенный выше пакетный файл был преобразован в .exe.

Моя основная проблема в том, что cmd.exe /c 'GOTO RETURN' читается как Write-Output вместо кода.

1 Ответ

1 голос
/ 10 июля 2019

Итак, если я правильно проанализирую:

У вас есть сценарий cmd, вы вызываете powershell для какой-то проверки и хотите выполнить действие, основанное на результатах этой команды powershell.

Если это так, то вы должны изменить вызов powershell, чтобы сделать его внутри цикла For /F, чтобы захватить его вывод.

Это не проверенный пример, который я делаю на своем телефоне:

 :RETURN

 #command lines here

 For /F "Tokens=*" %%A IN ('
   Powershell -command "if (gps ^| ? {$_.mainwindowtitle} ^| select name, id, mainwindowtitle ^| where {$_.Name -match ^'myapplication^'}^) { ^'App verified, running in Taskbar.^' } else { ^'App no running in Taskbar, checking again.^' }"
 ') DO (
   IF /I "%%A" EQU "App no running in Taskbar, checking again." (
     GOTO :RETURN
   )
 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...