명령 행에서 파이프


1

블로그 http://blogs.msdn.com/b/zainnab/archive/2007/07/09/grep-and-sed-with-powershell.aspx PowerShell 스크립트로 구현 된 sed를 대체하는 것으로 나타났습니다. 타사 sed 변형의 설치에 의존하고 싶지 않습니다. 따라서 위의 링크에서 솔루션을 사용합니다.

SED-ish

cat somefile.txt | %{$_ -replace "expression","replace"}

불행히도 이것은 이런 식으로 작동하지 않습니다

powershell cat somefile.txt | %{$_ -replace "expression","replace"}

왜냐하면 |cmd.exe에 의해 해석 되기 때문 입니다. 이 멋진 PowerShell 스크립트를 배치 파일에 사용되는 단일 라이너로 만드는 방법은 무엇입니까?

답변:


1

배치 스크립트에서 PowerShell 명령 실행

다음 -Command과 같이 매개 변수 를 사용할 수 있습니다 .

powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "cat somefile.txt | %{$_ -replace 'expression\",\"replace\"}"

참고 명령 문자열을 "사용하여 탈출해야합니다 \"(또는 대체 ')와 %함께 탈출해야합니다 %%.

추가 자료


2

이 시도 :

powershell -Command "cat somefile.txt | %{$_ -replace 'expression','replace'}"

%로 탈출해야 %%합니다.
and31415

@harper 명확하게 설명하자면 명령 프롬프트에서 실행될 때는 작동하지만 배치 스크립트에서 실행될 때는 작동하지 않습니다. Windows 7 / PowerShell 2.0.
and31415
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.