|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] использование команд Powershell в скриптах AutoIT |
|
|
[решено] использование команд Powershell в скриптах AutoIT
|
Пользователь Сообщения: 86 |
Профиль | Отправить PM | Цитировать
необходимость есть заручится поддержкой powershell
есть код #include <Constants.au3> $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 ? |
|
Отправлено: 15:24, 16-12-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Предупреждение за нарушение общих правил (П. 2.7).
Жду переименования темы. По поводу самой темы... А для тех кто не вкурсе, можно описать что такое Powershell, и главное, как проверить пример, или нам нужно гадать? Хотя попробую... Есть библиотека Encoding.au3, там есть функций конвертирования строк, может одна из них подойдёт (например _StringOEM2ANSI). |
------- Отправлено: 15:40, 16-12-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 86
|
Профиль | Отправить PM | Цитировать _StringOEM2ANSI
помогло, но тему пока не закрываю, может есть более лучший вариант |
Отправлено: 16:24, 16-12-2009 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата andr_mozg:
|
|
------- Отправлено: 16:35, 16-12-2009 | #4 |
Пользователь Сообщения: 86
|
Профиль | Отправить PM | Цитировать #include <Constants.au3> #include <Encoding.au3> $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, 16-12-2009 в 17:31. Отправлено: 17:15, 16-12-2009 | #5 |
Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 18:07, 16-12-2009 | #6 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать #include <Constants.au3> #include <Encoding.au3> $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) |
------- Отправлено: 22:33, 16-12-2009 | #7 |
Пользователь Сообщения: 86
|
Профиль | Отправить PM | Цитировать всё правельно пожно запускать через CMD, но есть проблема... при попытки послать сложную команду ,
ответа нет.... пока немогу понять почему.... (( |
Отправлено: 18:01, 18-12-2009 | #8 |
Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать мде.. вот и все, что я могу сказать
|
------- Отправлено: 18:35, 18-12-2009 | #9 |
Пользователь Сообщения: 86
|
Профиль | Отправить PM | Цитировать вот вроде рабочий вариант
Func _power($value) local $PowerShell = Run(@ComSpec & " /c " &$value, @SystemDir, @SW_HIDE , $STDERR_MERGED + $STDIN_CHILD) local $out="", $err="" StdinWrite($PowerShell) While 1 $line = StdoutRead($PowerShell) If @error Then ExitLoop If $line <> "" Then $out&=_StringOEM2ANSI($line) EndIf Wend if $out="" then $out="" While 1 $err = StderrRead($PowerShell) If @error Then ExitLoop If $line <> "" Then $out&=_StringOEM2ANSI($err) EndIf Wend endif If $PowerShell Then ProcessClose($PowerShell) if $out <> "" then Return $out EndFunc |
Отправлено: 13:25, 21-12-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] Автоматический запуск скрипта PowerShell по времени. | KAB | Скриптовые языки администрирования Windows | 7 | 06-03-2012 10:20 | |
Разное - Использование команд из user.exe(dll) | n9271217 | Microsoft Windows 2000/XP | 0 | 13-01-2009 14:58 | |
Система - [решено] PowerShell, Get-QADComputer, Win32_NetworkLoginProfile | somes | Программирование и базы данных | 1 | 10-11-2008 20:57 | |
Иероглифы в скриптах | nforcer | Автоматическая установка Windows 2000/XP/2003 | 0 | 30-08-2006 22:30 |
|