2016-06-13 2 views
1

Я пытаюсь выполнить команду 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 Я получаю сообщение об ошибке, если я не ставил команду в одинарные кавычки, не так ли? –

Смежные вопросы