Windows OS에서이 명령을 한 줄에 실행할 수있는 파이프 나 이와 유사한 것이 있습니까?
모두 cmd.exe
하나의 명령에서 다른 및 PowerShell을 지원 파이프. PowerShell에서 (명령 줄에서 한 줄에 있거나 스크립트에서 줄 바꿈을 이스케이프하려면`를 사용해야 함) :
netstat -ano
| select -skip 4
| % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}}
| ? {$_.Fields[1] -match '15120$'}
| % {taskkill /F /PID $_.Fields[4] }
어디:
Select -skip 4
처음 네 개의 헤더 행을 건너 뜁니다. ( 객체 프로젝트와 같은 SQL SELECT를 수행 Select
하는 Select-Object
데 사용됩니다.
%
파이프 라인의 Foreach-Object
각 객체 ( $_
) 에 대해 스크립트 블록을 수행하고 스크립트 블록 의 결과를 파이프 라인에 출력하는 축약 형입니다 . 여기에서는 먼저 입력을 필드 배열로 나누고 Original
문자열 netstat
과 Fields
배열이 만든 두 가지 속성으로 새로운 객체를 만듭니다 .
?
Where-Object
스크립트 블록의 결과를 기반으로하는 필터의 줄임말입니다 . 두 번째 필드의 끝에 정규 표현식을 일치시킵니다 (모든 PowerShell 컨테이너는 0을 기준으로 함).
(마지막 요소를 제외한 모든 테스트 : 프로세스 종료를 시작하고 싶지 않습니다 :-)).
실제로, 예를 들어 이것을 단순화 할 것입니다. 첫 번째 foreach
(헤더를 무시하도록 설계 됨) 에서 0 또는 PID 만 반환 하고 호출하기 전에 0이 아닌 값을 필터링합니다 taskkill
. PowerShell을 모르면 입력하기가 더 빠르지 만 따르기가 더 어려워집니다.
findstr
(Windowsgrep
)를 살펴보십시오 . 예를 들면 다음과 같습니다netstat -a -o -n | findstr "LISTENING" | findstr ":135"
.. 아마도 이것은 당신에게 한 걸음 더 가까이 다가 갈 것입니다.)