[решено] использование команд Powershell в скриптах AutoIT

Аватара пользователя
andr_mozg

[решено] использование команд Powershell в скриптах AutoIT

Сообщение andr_mozg »

необходимость есть заручится поддержкой powershell



есть код



Код:

Код: Выделить всё

#include 
$Cmd = 'dsquery'
$PowerShell = Run('PowerShell.exe '&$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

но вот беда по русски он не может писать.... что можно придумать?

может есть другой способ взаимодействия с powershell ?
Аватара пользователя
andr_mozg

Re: [решено] использование команд Powershell в скриптах AutoIT

Сообщение andr_mozg »

Предупреждение за нарушение
общих правил
(П. 2.7).

Жду переименования темы.







По поводу самой темы...

А для тех кто не вкурсе, можно описать что такое Powershell, и главное, как проверить пример, или нам нужно гадать?



Хотя попробую... Есть библиотека
Encoding.au3
, там есть функций конвертирования строк, может одна из них подойдёт (например _StringOEM2ANSI).
Аватара пользователя
Creat0R

Re: [решено] использование команд Powershell в скриптах AutoIT

Сообщение Creat0R »

_StringOEM2ANSI



помогло, но тему пока не закрываю, может есть более лучший вариант
Аватара пользователя
andr_mozg

Re: [решено] использование команд Powershell в скриптах AutoIT

Сообщение andr_mozg »

Цитата andr_mozg:



может есть более лучший вариант
[решено] использование команд Powershell в скриптах AutoIT




В соответствий с названием темы, другого варианта просто нет Изображение.
Аватара пользователя
Creat0R

Re: [решено] использование команд Powershell в скриптах AutoIT

Сообщение Creat0R »

Код:

Код: Выделить всё

#include 
#include 
$comand="dsquery"
$foo = Run(@ComSpec & " /c powershell " & $comand, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
$out=""
$line=""
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    if $line "" then $out=$out & _StringOEM2ANSI($line)
Wend
	MsgBox(0,"",$out)

рабочий вариант но всё равно не нравится.....
Аватара пользователя
andr_mozg

Re: [решено] использование команд Powershell в скриптах AutoIT

Сообщение andr_mozg »

Код:

Код: Выделить всё

#include 
#include 
$comand="dsquery"
$foo = Run(@ComSpec & " /c powershell " & $comand, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
$out=""
$line=""
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    if $line "" then $out=$out & _StringOEM2ANSI($line)
Wend
	MsgBox(0,"",$out)

рабочий вариант но всё равно не нравится.....
Аватара пользователя
kaster

Re: [решено] использование команд Powershell в скриптах AutoIT

Сообщение kaster »

andr_mozg, а зачем запусть PS через cmd? лучше уж сразу



Код:

Код: Выделить всё

Run('PowerShell ' & $command, ...)
Аватара пользователя
Creat0R

Re: [решено] использование команд Powershell в скриптах AutoIT

Сообщение Creat0R »

Код:

Код: Выделить всё

#include 
#include 
$comand="dsquery"
$foo = Run("powershell " & $comand, @SystemDir, @SW_HIDE, $STDOUT_CHILD)
$out=""
$line=""
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    If $line "" Then $out &= $line
Wend
$out = _StringOEM2ANSI($out)
MsgBox(0, "", $out)

Так работает?
Аватара пользователя
andr_mozg

Re: [решено] использование команд Powershell в скриптах AutoIT

Сообщение andr_mozg »

всё правельно пожно запускать через CMD, но есть проблема... при попытки послать сложную команду ,

ответа нет.... пока немогу понять почему.... Изображение((
Ответить

Вернуться в «AutoIt»