2016-06-13 2 views
1

나는 배치 파일 내에서 PowerShell 명령을 호출 할 :PowerShell 명령

powershell -Command "(gc test.txt) -replace ("~\[","`r`n[") | sc test.txt" 

그러나 항상이 오류

At line:1 char:29 
+ (gc test.txt) -replace (~\[,`r`n[) | sc test.txt 
+        ~ 
Missing argument in parameter list. 
    + CategoryInfo   : ParserError: (:) [], ParentContainsErrorRecordEx 
    ception 
    + FullyQualifiedErrorId : MissingArgument 

I 실패 문자열 바꾸기에 작은 따옴표를 사용하십시오.

powershell -Command "(gc test.txt) -replace ('~\[','`r`n[') | sc test.txt" 

하지만 백틱 이스케이프 문자는 작은 따옴표로 묶인 문자열 내에 다른 문자가 표시됩니다.

답변

1

그냥 탈출 백 슬래시를 사용하여 따옴표 :

powershell -Command "(gc test.txt) -replace (\"~\[\",\"`r`n[\") | sc test.txt" 
+1

작은 따옴표가, 심지어 필요하지 않은 큰 따옴표를 이스케이프 충분하다. –

+0

"ERROR : Unrecognized command"가 표시됩니다. –

+0

@GeraldSchneider 작은 따옴표로 명령을 입력하지 않으면 오류가 발생합니다. 그렇지 않습니까? –