2017-07-19 128 views
0

假設我有一個帶1個按鈕和1個文本框的窗體。所有的按鈕都是使用複製項目。我將如何獲得該複製的輸出到文本框?更進一步,我希望它能夠實時進行,就好像我在看控制檯一樣。如果這是不可能的,那麼在命令執行後更新文本框也很好。cmdlets輸出到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

實例設置基礎上,真或假返回文本框中輸入自定義值:

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