Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как экранировать в VB6 в строке символ "*" и переменную

Andrey B Ученик (183), на голосовании 11 месяцев назад
В VB6 запускаю команду powershell в которой есть аргумент "msg * $msg". Пытался по разному экранировать эту строчку, если ещё по две двойные, то VB ругается, если по три то PS не воспринимает символ *. Пробовал и другие варианты, в общем не получилось у меня (не спец, прошу сильно не пинять), прошу подсказать как лучше сделать.
Общий вид команды:
Set objShell = CreateObject("WScript.Shell")
objShell.Run ("powershell.exe -noexit $name = read-host ""'Enter computer name'"" ; $cred = Get-Credential xxxx\yyyyy ; $msg = read-host ""'Сообщение'"" ; Invoke-WmiMethod -Path Win32_Process -Name Create -ArgumentList """"msg * $msg"""" -ComputerName $name -Credential $cred | out-null")
Остальное все отрабатывает нормально
Дополнен 1 год назад
В строке PS должно быть -ArgumentList "msg * $msg"
Голосование за лучший ответ
Иван Сигаев Искусственный Интеллект (154284) 1 год назад
a$="Text before ""msg * $msg"" text after"
В переменную присвоится
Text before "msg * $msg" text after

Покажи что должно быть в строке повершелла
Andrey BУченик (183) 1 год назад
Так в вопросе внизу написал общий вид команды PS начиная с переменной $name
Andrey BУченик (183) 1 год назад
$name = read-host ""'Enter computer name'"" ; $cred = Get-Credential xxxx\yyyyy ; $msg = read-host ""'Сообщение'"" ; Invoke-WmiMethod -Path Win32_Process -Name Create -ArgumentList "msg * $msg" -ComputerName $name -Credential $cred | out-null"
Это в PS отрабатывает нормально, а в VB нет, получается надо в -ArgumentList "msg * $msg" изменить на -ArgumentList a$ ?
Похожие вопросы