Я хочу идентифицировать процессы, которые выполняются из определенной родительской структуры пути dir во время выполнения.Динамическое регулярное выражение против process.Path в powershell
Я пытаюсь безуспешно:
$INSTALL_PATH=$ENV:PROGRAMFILES + "\my-ag\products" + $PVER
$ESCAPE_PATH=[regex]::escape("^" + $INSTALL_PATH + ".*")
$REGEX_PATH=[regex]$ESCAPE_PATH
if (test-path $INSTALL_PATH) {
get-process java | foreach{
$pName = $_
if ($pName.Path -match $ESCAPE_PATH) {
# No printed, however there are 2 process running.
write-output $pName.Path
}
if ($REGEX_PATH.Match($pName.Path)) {
# prints all process even not from $INSTALL_PATH.
write-output $pName.Path
}
}
}
exit 0
Как звонить/правильно использовать модуль регулярных выражений, чтобы соответствовать пути?
Спасибо!
Для меня это не так ясно. Вы должны указать примеры путей, которые вы хотите распечатать, и путь, который вы не хотите печатать. – JPBlanc
Код печатает две строки: 'C: \ Program Files (x86) \ Java \ jre7 \ bin \ java.exe' и ' C: \ Program Files (x86) \ my-ag \ products5.0 \ thirdparty \ java \ bin \ java.exe' Я хочу только напечатать последний. Могут быть другие программы, запущенные из 'C: \ Program Files (x86) \ my-ag \ products5.0 \', которые я хочу завершить. – jessarah