Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Другие темы раздела
PowerShell Вывод из функции https://www.cyberforum.ru/ powershell/ thread2039250.html
Добрый день. Подскажите пожалуйста как сделать правильный вывод из функции. допустим у нас есть некая функция обернутая в try catch котороя делает что то и если код успешно отработал вернет в...
PowerShell Windows form вывод текста как в консоле
всем доброго дня. хотелось бы добавить в форму окно консоли powershell, то есть должна открыться форма, вывести некоторую информацию, и снизу динамически выводить консольную информацию о исполняемых...
Импорт кириллицы в текстовый файл - результат пусто PowerShell
*. Csv description Центральный офис - Лондон После выполнения скрипта, файл пустой, и так только с кириллицей, латинские нормально работатют.
PowerShell Выгрузка отчета пользователей по группам согласно списка Добрый день! Сделал скрипт для выгрузки пользователей из группы AD согласно списка в текстовом файле, он работает. Появилась необходимость немного видоизменить итоговую отчетность, возникли... https://www.cyberforum.ru/ powershell/ thread2038881.html
PowerShell Неправильная кодировка русских букв из эксель https://www.cyberforum.ru/ powershell/ thread2038861.html
Вот скрипт который конвертирует таблицу Excel в формат *.csv $path = $(Read-Host "Укажите путь к каталогу где находится файл для импорта-экспорта") cd $path $path = $(Read-Host "Введите...
PowerShell Экспорт данных после обработки в *.csv, используя Export-Csv
Данные находятся в файле sample.csv objectClass;displayName;userPrincipalName;mail user;Семен Астахов;s.astachov@bvs.local;astachov@mail.ru user;Александр...
PowerShell Import-Csv и Excel - некорректное отображение кириллицы
Import-Csv Экспортирую файл exel.xlsx в формат *.csv, и не важно то ли это *.csv(ms-dos), или обычный *.csv, exel.xlsx objectClass;displayName;userPrincipalName;mail user;Александр...
PowerShell Скрипт по формированию уровней доступа для сетевых путей Добрый день. Есть скрипт, который формирует по заданому пути файл в котором есть назначенные уровни доступа (прямые или если группа AD, то еще и состав объектов в группе). Работает он красиво, но... https://www.cyberforum.ru/ powershell/ thread2037012.html
PowerShell Использования цикла do while в функции в Powershell https://www.cyberforum.ru/ powershell/ thread2037011.html
Смысл скрипта, чтобы он наполнял некий файл строчками с данными, но наполнял до тех пор пока пользователь не скажет нет. Я попробывал реализовать это через цикл do while не получилось. ...
PowerShell Не пойму что может быть не так в работе скрипта Всем привет. Помогите пожалуйста. Есть скрипт который проверяет пользователей в АД, если они не активны определенное количество дней, то их отключает и перемещает в другой раздел. # Disable Active... https://www.cyberforum.ru/ powershell/ thread2036833.html
50 / 16 / 11
Регистрация: 27.03.2013
Сообщений: 788
19.09.2017, 17:14  [ТС] 0

Функция с таймером выбора действия или выполнение действия по умолчанию

19.09.2017, 17:14. Показов 5372. Ответов 5
Метки (Все метки)

Ответ

Данный скрипт выбивает ошибки

Кликните здесь для просмотра всего текста
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Function read-HostTimeout {
###################################################################
##  Description:  Mimics the built-in "read-host" cmdlet but adds an expiration timer for
##  receiving the input.  Does not support -assecurestring
##
##  This script is provided as is and may be freely used and distributed so long as proper
##  credit is maintained.
##
##  Written by: [email]thegeek@thecuriousgeek.org[/email]
##  Date Modified:  10-24-14
###################################################################
 
# Set parameters.  Keeping the prompt mandatory
# just like the original
param(
    [Parameter(Mandatory=$true,Position=1)]
    [string]$prompt,
    
    [Parameter(Mandatory=$false,Position=2)]
    [int]$delayInSeconds
)
    
    # Do the math to convert the delay given into milliseconds
    # and divide by the sleep value so that the correct delay
    # timer value can be set
    $sleep = 250
    $delay = ($delayInSeconds*1000)/$sleep
    $count = 0
    $charArray = New-Object System.Collections.ArrayList
    Write-host -nonewline "$($prompt):  "
    
    # While loop waits for the first key to be pressed for input and
    # then exits.  If the timer expires it returns null
    While ( (!$host.ui.rawui.KeyAvailable) -and ($count -lt $delay) ){
        start-sleep -m $sleep
        $count++
        If ($count -eq $delay) { "`n"; return $null}
    }
    
    # Retrieve the key pressed, add it to the char array that is storing
    # all keys pressed and then write it to the same line as the prompt
    $key = $host.ui.rawui.readkey("NoEcho,IncludeKeyUp").Character
    $charArray.Add($key) | out-null
    Write-host -nonewline $key
    
    # This block is where the script keeps reading for a key.  Every time
    # a key is pressed, it checks if it's a carriage return.  If so, it exits the
    # loop and returns the string.  If not it stores the key pressed and
    # then checks if it's a backspace and does the necessary cursor 
    # moving and blanking out of the backspaced character, then resumes 
    # writing. 
    $key = $host.ui.rawui.readkey("NoEcho,IncludeKeyUp")
    While ($key.virtualKeyCode -ne 13) {
        If ($key.virtualKeycode -eq 8) {
            $charArray.Add($key.Character) | out-null
            Write-host -nonewline $key.Character
            $cursor = $host.ui.rawui.get_cursorPosition()
            write-host -nonewline " "
            $host.ui.rawui.set_cursorPosition($cursor)
            $key = $host.ui.rawui.readkey("NoEcho,IncludeKeyUp")
        }
        Else {
            $charArray.Add($key.Character) | out-null
            Write-host -nonewline $key.Character
            $key = $host.ui.rawui.readkey("NoEcho,IncludeKeyUp")
        }
    }
    ""
    $finalString = -join $charArray
    return $finalString
}


Выбивает ошибки и бесконечный цикл этих ошибок

Кликните здесь для просмотра всего текста
Исключение при вызове "ReadKey" с "1" аргументами: "Метод или операция не реализована."
строка:66 знак:4
+ $key = $host.ui.rawui.readkey("NoEcho,IncludeKeyUp")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : NotImplementedException

Исключение при вызове "ReadKey" с "1" аргументами: "Метод или операция не реализована."
строка:66 знак:4
+ $key = $host.ui.rawui.readkey("NoEcho,IncludeKeyUp")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( [], MethodInvocationException
+ FullyQualifiedErrorId : NotImplementedException


Этот пример наглядно показывает что проблема в аргументах передаваемых методу readkey

Кликните здесь для просмотра всего текста
PowerShell
1
2
3
4
5
6
7
8
Write-Host "Нажмите любую клавишу для продолжения … или Ctrl+C для отмены"
$x = $host.ui.rawui.readkey("NoEcho")
$a = "Скрипт"
$b = "успешно"
$c = "выполнен !!!"
Write-Host
Write-Host $a $b $c
Write-Host


Отчего такие ошибки ?

Добавлено через 25 минут
PowerShell
1
(!$host.ui.rawui.KeyAvailable)
Что имеется ввиду в этом условии
$host.ui.rawui.KeyAvailable – содержит булево значение true или false

Проверяет было ли нажатие клавиши или нет ?
А для чего знак отрицания - "!" ?

Например это условие

PowerShell
1
(!$host.ui.rawui.KeyAvailable) -and ($count -lt $delay)
объединены логическим оператором -and.
В результате все выражение (заключенное в фигурные скобки) будет истинным лишь при выполнении обоих условий.

$count -количество нажатий
$delay - время задержки

($count -lt $delay) - это условие понятно

А как это "читать"?

(!$host.ui.rawui.KeyAvailable) -and ($count -lt $delay)

PowerShell
1
(!$host.ui.rawui.KeyAvailable) -and ($count -lt $delay)
Добавлено через 18 минут
Уточнение - ошибки появляются при выполнении в PowerShell ise ?

Но почему ?

Добавлено через 7 минут
При запуске скрипта через консоль и указание в скрипте , вызова функциии вот так

PowerShell
1
read-HostTimeout
появляется запрос на ввод данных и так строка остается, пока что нибудь не будет введено.

Если передаю 2 параметра, то 1-й подставляется сразу и мне не предлагается что-либо ввести

PowerShell
1
read-HostTimeout 'Строка' 10
Но ведь по логике, в начале должен выйти запрос на ввод данных и если по истечении срока пользователь ничего не ввел, только тогда подставляется значение, тогда что здесь не так ?

Вернуться к обсуждению:
Функция с таймером выбора действия или выполнение действия по умолчанию
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2017, 17:14

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Отмена действия по умолчанию
Здравствуйте! есть кнопка типа submit. я хочу, чтоб при нажатии на неё отменялось действие по...

Выполнение действия
Доброго времени суток, форумчане! Возникла такая проблемка, есть сайт, на нём есть картинка при...

Постоянное выполнение действия
если я выполнение рисования на канве делаю через onmousemove все отлично работает $( "#games"...

Выполнение действия по таймеру
Здравствуйте. Подскажет пожалуйста, каким образом можно решить следующую задачу: Необходимо при при...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.