Что нового

[Данные, строки] кавычки для PowerShell

rafzak

Новичок
Сообщения
27
Репутация
1
Здравствуйте, подскажите пожалуйста, как экранировать `n, чтобы отработал PoSH ('`n' не должно экранироваться, только так - "`n"). Не могу понять на каком этапе происходит ошибка.

Код:
#include <Constants.au3>

$spr = "`n"
$Cmd ="'PowerShell' -replace 'Power', """ &$spr & """ "
MsgBox(0, 'Сообщение', $Cmd)
$PowerShell = Run(@ComSpec & " /c powershell " &$Cmd, "", @SW_HIDE , $STDERR_CHILD + $STDOUT_CHILD + $STDIN_CHILD)

StdinWrite($PowerShell)

While 1
    $line = StdoutRead($PowerShell)
    If @error Then ExitLoop
    If $line <> "" Then
    MsgBox(0,"",$line)
    EndIf
Wend

While 1
    $line = StderrRead($PowerShell)
    If @error Then ExitLoop
    MsgBox(0,"",$line)
Wend


правильный результат отработки команды:
Код:
PS C:\Users\Computer> 'PowerShell' -replace 'Power',"`n"

Shell

неправильный
Код:
`nShell
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
rafzak, прошу прощения конечно, но тема вроде в "Регулярные выражения и прочее". Но я не вижу вашего регулярного выражения, не вижу исходной строки. К чему выложен этот скрипт тоже не совсем понятно.
Напишите просто две-три исходные строки. И что должно получится из них на выходе. И вам тут напишут регулярное выражение, для этого.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Я правильно понял, что `n должна быть в кавычках? Тогда так попробуйте:
Код:
$spr = '"`n"'
$Cmd ="'PowerShell' -replace 'Power', " & $spr
 
Автор
R

rafzak

Новичок
Сообщения
27
Репутация
1
Помогло вот это:

Код:
$Cmd1 ="'PowerShell' -replace 'Power', """"""`n"""""""
 
Верх