2017-08-04 2 views
0

Auf der Suche nach einer Lösung. Ich habe ein einfaches Skript, das nach bestimmten Verzeichnissen auf Netzwerk-PCs sucht.Weiterleiten der Variablen zum Aufruf-Element

Allerdings bin ich mir nicht sicher, wie man $ compname Variable an Invoke-Element übergeben. Ich betreibe PS v2.0. Mit dem aktuellen Skript erhalte ich einen Fehler: Invoke-Item: Der Pfad '\\ C $ \ Programme \ IBM \ Lotus \ Notes \ Data' kann nicht gefunden werden, weil er nicht existiert.

$dskbox = New-Object system.windows.Forms.TextBox 
$dskbox.Width = 134 
$dskbox.Height = 20 
$dskbox.location = new-object system.drawing.point(24,41) 
$dskbox.Font = "Microsoft Sans Serif,10,style=Bold" 
$Title.controls.Add($dskbox) 
$compname = $dskbox.Text 


$Open = New-Object system.windows.Forms.Button 
$Open.BackColor = "#23b14d" 
$Open.Text = "Open" 
$Open.ForeColor = "#ffffff" 
$Open.Width = 163 
$Open.Height = 51 
$Open.location = new-object system.drawing.point(6,77) 
$Open.Font = "Microsoft Sans Serif,10,style=Bold" 
$Title.controls.Add($Open) 


$Open.Add_Click({ 


ii "\\$compname\C$\Program Files\IBM\Lotus\Notes\Data" 

}) 

[void]$Title.ShowDialog() 
$Title.Dispose() 
+0

Es scheint ein Tippfehler zu sein. Sie weisen '$ dskbox.Text' zu' $ compname' zu, dann beziehen Sie sich auf '$ companame' (notieren Sie die extra * a *) –

+0

Danke Mathias, Gut entdeckt. Dieser Fehler wurde behoben, aber immer noch die gleiche Fehlermeldung angezeigt. '\\\ C $ \ Programme \ IBM \ Lotus \ Notes \ Data', weil es nicht existiert. –

Antwort

0

Sie setzen $compname, wenn das Textfeld zu schaffen, die offensichtlich zu diesem Zeitpunkt leer sein wird. Sie müssen es in die Skript bewegen:

$Open.Add_Click({ 
    $compname = $dskbox.Text 
    ii "\\$compname\C$\Program Files\IBM\Lotus\Notes\Data" 
}) 

Oder Sie könnten nur diese Variablen vollständig loszuwerden: ii "\\$($dskbox.Text)\C$\Program Files\IBM\Lotus\Notes\Data"

0

Sie Ihre assoziieren $Open.add_Click($Open_OnClick) zu einem Skript und invoke-item innerhalb des Skript beginnen.

$dskbox = New-Object system.windows.Forms.TextBox 
$dskbox.Width = 134 
$dskbox.Height = 20 
$dskbox.location = new-object system.drawing.point(24,41) 
$dskbox.Font = "Microsoft Sans Serif,10,style=Bold" 
$Title.controls.Add($dskbox) 
$compname = $dskbox.Text 


$Open = New-Object system.windows.Forms.Button 
$Open.BackColor = "#23b14d" 
$Open.Text = "Open" 
$Open.ForeColor = "#ffffff" 
$Open.Width = 163 
$Open.Height = 51 
$Open.location = new-object system.drawing.point(6,77) 
$Open.Font = "Microsoft Sans Serif,10,style=Bold" 
$Open.add_Click($Open_OnClick) 
$Title.controls.Add($Open) 

$Open_OnClick= 
{ 
    ii "\\$compname\C$\Program Files\IBM\Lotus\Notes\Data" 
} 

[void]$Title.ShowDialog() 
$Title.Dispose() 
Verwandte Themen