Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Подстановка из файла (http://forum.oszone.net/showthread.php?t=232198)

Butunin Klim 06-04-2012 11:41 1894558

Подстановка из файла
 
Не могу понять как сделать форму подстановки из файла по первым буквам (фильтр) в форму ввода
Вообщем на пальцах если...
Есть csv или txt фаил где если столбцы с именами их около 400 мне надо что бы по первым буквам например нам надо найти пользователя Петров
Я вводу "П" и из файла сразу идет подстановка этого имени в виде Павликов, Пархоменко, потом я в этой же форме ввожу вторую буку "Е" и выборка уже идет более конкретно Петров ...
Гуд, он мне и нужен , дальше у меня уже другой компонет работает
Вообще можно это сделать в PS?

ferget 06-04-2012 18:10 1894779

Цитата:

Цитата Butunin Klim
в форму ввода »

что за форма? winforms textbox?

Butunin Klim 09-04-2012 10:21 1896109

Вот скрипт
"СЮДА ПОДСТАВНОКА ИМЕНИ ИЗ ФАЛА TXT или CSV"
Вот сюда нужно сделать систему фильтра по поиску.
То есть, если ввести первую букву то сразу подставятся те машины которые начинаются на эту букву


Цитата:

Add-Type -assembly System.Windows.Forms

# Все просто, массивы из списка серверов, списка пользоватей, и варианты подписи - чтобы использовать могла не только поддержка.
$Server = @("СЮДА ПОДСТАВНОКА ИМЕНИ ИЗ ФАЛА TXT или CSV")
$User = @("Администратор")
$Password = "ras****ru"




Function SendMessage {
param ($Server, $User, $Password)
# Write-Host $Server, $User, $Password, $Sign
If ($TestRunCheckBox.Checked -eq 1 ) { Write-Host $TestRunCheckBox.Checked; $Server="localhost"; $User = "Console" }
ForEach ($Item in $Server) {
ForEach ($UserX in $User) {
$UserTrim = $UserX.Trim()
$ServerTrim = $Item.Trim()
$MsgTrim = $Password.Trim()
$SignTrim = $SignX.Trim()
# Отладочный вывод, оставлен на всякий случай.
# Write-Host "User: $UserTrim; Server: $ServerTrim; Message: $MsgTrim; Signature: $SignTrim"
c:\windows\system32\cmd.exe
}
}
Confirm
}

# Вывод окна с подтверждением
Function Confirm {
$ConfirmWin = New-Object System.Windows.Forms.Form
$ConfirmWin.StartPosition = "CenterScreen"
$ConfirmWin.Text = "Подтверждение подключения"
$ConfirmWin.Width = 200
$ConfirmWin.Height = 120
$ConfirmWin.ControlBox = 0

$ConfirmWinOKButton = New-Object System.Windows.Forms.Button
$ConfirmWinOKButton.add_click({ $MainSendWindow.Close(); $ConfirmWin.Close() })
$ConfirmWinOKButton.Text = "Закрыть"
$ConfirmWinOKButton.AutoSize = 1
$ConfirmWinOKButton.Location = New-Object System.Drawing.Point(50,50)

$ConfirmLabel = New-Object System.Windows.Forms.Label
$ConfirmLabel.Text = "Подключаемся"
$ConfirmLabel.AutoSize = 1
$ConfirmLabel.Location = New-Object System.Drawing.Point(10,10)

$ConfirmWin.Controls.Add($ConfirmLabel)
$ConfirmWin.Controls.Add($ConfirmWinOKButton)
$ConfirmWin.ShowDialog() | Out-Null
}


$MainSendWindow = New-Object System.Windows.Forms.Form
$ToolTip = New-Object System.Windows.Forms.ToolTip

$ToolTip.BackColor = [System.Drawing.Color]::LightGoldenrodYellow
$ToolTip.IsBalloon = $true
# $ToolTip.InitialDelay = 500
# $ToolTip.ReshowDelay = 500


$SendButton = New-Object System.Windows.Forms.Button
$CloseButton = New-Object System.Windows.Forms.Button
$TestRunCheckBox = New-Object System.Windows.Forms.CheckBox


$ServerTextBox = New-Object System.Windows.Forms.ComboBox
$UserTextBox = New-Object System.Windows.Forms.ComboBox
$PasswordTextBox = New-Object System.Windows.Forms.TextBox
$SignTextBox = New-Object System.Windows.Forms.ComboBox


$ServerTextBoxLabel = New-Object System.Windows.Forms.Label
$UserTextBoxLabel = New-Object System.Windows.Forms.Label
$PasswordTextBoxLabel = New-Object System.Windows.Forms.Label
$SignTextBoxLabel = New-Object System.Windows.Forms.Label



$MainSendWindow.StartPosition = "CenterScreen"
$MainSendWindow.Text = "Подключится"
$MainSendWindow.Width = 470
$MainSendWindow.Height = 220

$ServerTextBoxLabel.Location = New-Object System.Drawing.Point(10,12)
$ServerTextBoxLabel.Text = "Список IP"
$ServerTextBoxLabel.Autosize = 1

$UserTextBoxLabel.Location = New-Object System.Drawing.Point(10,42)
$UserTextBoxLabel.Text = "Список Админинов"
$UserTextBoxLabel.Autosize = 1

$PasswordTextBoxLabel.Location = New-Object System.Drawing.Point(10,73)
$PasswordTextBoxLabel.Text = "Пароль* если надо"
$PasswordTextBoxLabel.Autosize = 1

$ToolTip.SetToolTip($PasswordTextBoxLabel, "Нет подписи")

$SignTextBoxLabel.Location = New-Object System.Drawing.Point(10,103)
$SignTextBoxLabel.Text = "Подпись"
$SignTextBoxLabel.Autosize = 1
$ToolTip.SetToolTip($SignTextBoxLabel, "Нет подписи 2")


$ServerTextBox.Location = New-Object System.Drawing.Point(140,10)

$ServerTextBox.DataSource = $Server

$ServerTextBox.Width = 300
#
$ServerTextBox.add_TextChanged({ $Server = $ServerTextBox.Text })

$ServerTextBox.TabIndex = 1
$ToolTip.SetToolTip($ServerTextBox, "Укажите список серверов")

$UserTextBox.Location = New-Object System.Drawing.Point(140,40)
$UserTextBox.DataSource = $User

$UserTextBox.Text = $User[1]
$UserTextBox.add_TextChanged({ $User = $UserTextBox.Text })
$UserTextBox.Width = 300
$UserTextBox.TabIndex = 2



$PasswordTextBox.Location = New-Object System.Drawing.Point(140,70)
$PasswordTextBox.Text = $Password

$PasswordTextBox.add_click({ $PasswordTextBox.SelectAll() })
$PasswordTextBox.add_TextChanged( { $Password = $PasswordTextBox.Text })
$PasswordTextBox.Width = 300
$PasswordTextBox.TabIndex = 3
$ToolTip.SetToolTip($PasswordTextBox, "Куда подключится?")


$SignTextBox.Location = New-Object System.Drawing.Point(140,103)

$SignTextBox.DataSource = $Sign

$SignTextBox.Text = $Sign[1]
$SignTextBox.add_TextChanged({ $SignX = $SignTextBox.Text })
$SignTextBox.Width = 300
$SignTextBox.TabIndex = 4
$ToolTip.SetToolTip($SignTextBox, "Нет подключения")


$SendButton.Location = New-Object System.Drawing.Point(10,150)
$SendButton.Text = "Подключиться"

$SendButton.add_click({ $User = $UserTextBox.Text.Split(","); $Server = $ServerTextBox.Text.Split(","); $SignX = $SignTextBox.Text; SendMessage $Server $User $Password $SignX} )
$SendButton.Autosize = 1
$SendButton.TabIndex = 5
$ToolTip.SetToolTip($SendButton, "Включи")


$TestRunCheckBox.Location = New-Object System.Drawing.Point(200,150)
$TestRunCheckBox.Text = "Тест"
$TestRunCheckBox.Checked = 1
$TestRunCheckBox.AutoSize = 1
$TestRunCheckBox.TabIndex = 6
$ToolTip.SetToolTip($TestRunCheckBox, "Снимите , для работы в полном режиме")


$CloseButton.Location = New-Object System.Drawing.Point(315,150)
$CloseButton.Text = "Выйти из программы"
$CloseButton.add_click({ $MainSendWindow.Close() })
$CloseButton.Autosize = 1
$CloseButton.TabIndex = 7
$ToolTip.SetToolTip($CloseButton, "Выход")



$MainSendWindow.Controls.Add($SendButton)
$MainSendWindow.Controls.Add($TestRunCheckBox)
$MainSendWindow.Controls.Add($CloseButton)

$MainSendWindow.Controls.Add($ServerTextBox)
$MainSendWindow.Controls.Add($UserTextBox)
$MainSendWindow.Controls.Add($PasswordTextBox)
$MainSendWindow.Controls.Add($SignTextBox)

$MainSendWindow.Controls.Add($ServerTextBoxLabel)
$MainSendWindow.Controls.Add($UserTextBoxLabel)
$MainSendWindow.Controls.Add($PasswordTextBoxLabel)
$MainSendWindow.Controls.Add($SignTextBoxLabel)

$MainSendWindow.ShowDialog() | Out-Null

ferget 10-04-2012 03:05 1896792

вот здесь программа, делает GUI для powershell
http://www.sapien.com/software/primalforms#

вот ее вариант автодополнения

Код:

        [void]$textbox1.AutoCompleteCustomSource.Add("меня")
        [void]$textbox1.AutoCompleteCustomSource.Add("сервер")
        [void]$textbox1.AutoCompleteCustomSource.Add("примерно")
        [void]$textbox1.AutoCompleteCustomSource.Add("полгода")
        [void]$textbox1.AutoCompleteCustomSource.Add("отлично")
        [void]$textbox1.AutoCompleteCustomSource.Add("пашет")
        [void]$textbox1.AutoCompleteCustomSource.Add("серьёзных")
        [void]$textbox1.AutoCompleteCustomSource.Add("замечаний")
        [void]$textbox1.AutoCompleteCustomSource.Add("гляньте")
        $textbox1.AutoCompleteMode = 'Suggest'
        $textbox1.AutoCompleteSource = 'CustomSource'
        $textbox1.Location = '106, 96'
        $textbox1.Name = "textbox1"
        $textbox1.Size = '100, 20'
        $textbox1.TabIndex = 1



Время: 22:55.

Время: 22:55.
© OSzone.net 2001-