2017-07-19 21 views
0

たとえば、1つのボタンと1つのテキストボックスを持つフォームがあるとします。すべてのボタンはcopy-itemを使用しています。そのコピーの出力をテキストボックスにどのようにして得られますか?私がコンソールを見ているかのようにリアルタイムでそれを行うことをさらに望んでいます。それが不可能な場合は、コマンドの実行後にテキストボックスを更新することもできます。コマンドレットをGUIテキストボックスに出力するPowershell

例:

function CreateFormButton ($locationheight, $locationwidth, $sizeheight, $sizewidth, $fieldname, $functionname) { 
    $Button = New-Object System.Windows.Forms.Button 
    $Button.Location = New-Object System.Drawing.Size($locationheight, $locationwidth) 
    $Button.Size = New-Object System.Drawing.Size($sizeheight, $sizewidth) 
    $Button.Text = $fieldname 
    $Button.Add_Click($functionname) 
    $Form.Controls.Add($Button) 
} 

function CreateTextWindow ($locationHeight, $LocationWidth, $TextBoxHeight, $TextBoxWidth, $name) { 
    $TextWindow = new-object System.Windows.Forms.TextBox 
    $TextWindow.Size = New-Object System.Drawing.Size($textBoxHeight,$textBoxWidth) 
    $TextWindow.location = new-object system.drawing.point($locationHeight,$LocationWidth) 
    #$textWindow.Text = "Complete" 
    $TextWindow.Name = $name 
    $TextWindow.Multiline = $true 
    $Form.Controls.Add($TextWindow) 
} 

$path1 = "C:\SomePath\" 
$path2 = "C:\SomePath\" 

function call_Clean 
{ 
    #Edit 
    #Copy-Item "$Path1\Unit" -Destination $Path2 -Recurse -Force 
    Copy-Item "$Path1\Unit" -Destination $Path2 -Recurse -Force -Verbose 
} 

$Form = New-Object system.Windows.Forms.Form 
$Form.Text = "Tool" 
$Form.Size = New-Object System.Drawing.Size (475, 600) 
$Form.Location = New-Object System.Drawing.Point(4000, 300) 



CreateFormButton 315 100 120 40 'Local Deploy' ${function:call_Clean} 
CreateTextWindow 150 160 300 375 'TextBox' 

答えて

0

Copy-Item任意の値を返しません。アイテムをコピーした後に実行するアクションはTest-Pathです。その後、例Test-Path

からTrueまたはFalseのリターンに基づいて、テキストボックスにカスタム値を設定することができます。

Copy-Item C:\myfolder\myfile.txt -Destination C:\myfolder2\myfile.txt 
$result = Test-Path C:\myfolder2\myfile.txt 
if($result) 
{ 
    $MyTextBox.Text = "Item moved" 
} 
Else 
{ 
    $MyTextBox.Text = "Item failed to move" 
} 

あなたはまた、-PassThruに追加して、変数への応答を割り当てることができます。

+0

私は謝罪したそのコピーアイテムステートメントに-verboseフラグを追加しませんでした。私はそれを編集するつもりですが、基本的には、-verboseフラグがテキストボックスに書き込まれる出力を探しています。 – Keifer

関連する問題