Java 프로그램에서 사용하기 위해 PowerShell 명령 결합

Java 프로그램에서 사용하기 위해 PowerShell 명령 결합

저는 애플리케이션에 대한 프로세스 관련 로그를 가져오는 Java 프로그램을 작성하고 있습니다. 이를 위해서는 특정 위치에 생성된 Java 프로세스를 가져와야 합니다. 단일 명령이나 한 줄에 전달할 수 있는 명령 조합을 사용하여 Windows 상자에서 이 정보를 얻는 방법을 알아야 합니다.

나는 약간의 연구를 했고 결국 옵션으로 PowerShell을 사용하게 되었습니다. 두 개의 개별 PowerShell 명령을 사용하여 결과를 얻습니다.

Powershell
Get-Process java| where {$_.path -like 'D:\ptc\Windchill_11.0\Java\jre\bin\java.exe'}

여기에 이미지 설명을 입력하세요

하지만 두 가지를 결합해도 결과가 나오지 않습니다.

Powershell ; Get-Process java ^| where {$_.path -like 'D:/ptc/Windchill_11.0/Java/jre/bin/java.exe'}

여기에 이미지 설명을 입력하세요

두 가지를 결합하는 데 도움을 줄 수 있는 사람이 있나요? 아니면 PowerShell 외에 다른 옵션이 있나요?

답변1

좋습니다. 이는 귀하가 PowerShell을 처음 접했고 아직 익숙해지는 데 필요한 시간을 투자하지 않았음을 의미하므로 몇 가지 추측을 해보겠습니다. 그것은 실제로 당신에게 도움이 되지 않습니다.

강화하지 않으면 불필요한 혼란, 좌절, 오류, 나쁜 습관, 오해 등이 발생할 뿐입니다. 따라서 제가 제안하는 강화를 통해 그러한 경험을 줄이거나 피할 수 있습니다. 그럼에도 불구하고 어떤 학습을 하든 어느 정도 추측/실험이 일어날 것입니다. 왜냐하면 그것이 짐승의 본성이기 때문입니다.;-}

Java 구문과 PowerShell 코드를 혼합하지 마세요. PowerShell에는 많은 예약어, 변수 및 스크립트, 명령 및 .exe를 실행하기 위해 코드를 구성해야 하는 특정 방법이 있습니다.

PowerShell의 세미콜론은 해당 줄을 하나의 라이너로 만들지 않습니다.(파이프라인 하나의 라이너). 이는 동일한 줄에 있는 두 개의 별도 독립 명령/코드 블록입니다. 명령문 종결자입니다.

PowerShell 명령을 실행하려면 이미 PowerShell 세션에 있어야 합니다.

그래서 이거...

Get-Process java| where {$_.path -like "D:\ptc\Windchill_11.0\Java\jre\bin\java.exe"}

… 작동합니다. 이미 PowerShell을 시작했고 이 명령을 수동으로 입력했기 때문입니다.

이것..

 Powershell ; Get-Process java ^| where {$_.path -like 'D:/ptc/Windchill_11.0/Java/jre/bin/java.exe'} enter image description here

… PowerShell 명령을 실행하기 전에 PowerShell 세션에 있지 않았기 때문에 실패합니다.

보다: PowerShell.exe 명령줄 도움말

# EXAMPLES

# Create a new PowerShell session and load a saved console file
PowerShell -PSConsoleFile sqlsnapin.psc1

# Create a new PowerShell V2 session with text input, XML output, and no logo
PowerShell -Version 2.0 -NoLogo -InputFormat text -OutputFormat XML

# Execute a PowerShell Command in a session
PowerShell -Command "Get-EventLog -LogName security"

# Run a script block in a session
PowerShell -Command {Get-EventLog -LogName security}

# An alternate way to run a command in a new session
PowerShell -Command "& {Get-EventLog -LogName security}"

# To use the -EncodedCommand parameter:
$command = "dir 'c:\program files' "
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
powershell.exe -encodedCommand $encodedCommand

그래서 당신의 것은 ...

PowerShell -Command "Get-Process java ^ | where {$_.path -like 'D:/ptc/Windchill_11.0/Java/jre/bin/java.exe'}"

PowerShell: 실행 파일 실행

PowerShell을 사용할 때 이해해야 할 사항인용 규칙가장 중요합니다.

PowerShell 인용문 – 확장하거나 확장하지 않는 것이 문제입니다.

PowerShell 인용 규칙 이야기

다시 한 번 말씀드리지만, 귀하는 초보자이므로 다음 사항에 필요한 시간을 투자하십시오.

...그리고 모든 것을 사용하세요비용 없음/무료 리소스모두웹을 통해. MS TechNet과 마찬가지로Windows PowerShell 생존 가이드.

관련 정보