PowerShell - Liste von Dokumenten in MessageBox ausgeben
Hallo zusammen,
ich stecke mal wieder an einem Projektchen fest und zwar habe ich eine MessageBox gebastelt die ein paar Informationen bereitstellt sobald diese aufgerufen wird.
Nun möchte ich noch eine Liste von Dokumenten aus einem bestimmten Ordner innerhalb der MessageBox anzeigen lassen.
Hier mal der Code soweit:
Die Anzahl der Dokumente haut super hin, aber ich bekomme nicht den Namen der Dokumente als Liste mit rein.
ich stecke mal wieder an einem Projektchen fest und zwar habe ich eine MessageBox gebastelt die ein paar Informationen bereitstellt sobald diese aufgerufen wird.
Nun möchte ich noch eine Liste von Dokumenten aus einem bestimmten Ordner innerhalb der MessageBox anzeigen lassen.
Hier mal der Code soweit:
# Load assembly
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$DocList = Get-ChildItem -Path "K:\LUP\50_Bescheiddruck" -Filter *.pdf | Select-Object Name, CreationTime | Where-Object Name -like $env:USERNAME
$AnzahlDocs = $DocList.Count
$oReturn=[System.Windows.Forms.MessageBox]::Show("Das Dokument wurde an die Druckerstraße übergeben. Die Versendung wird am folgenden Arbeitstag erfolgen. `n`n
Wenn Sie das Dokument doch nicht übermitteln möchten, wenden Sie sich bitte an einer der folgenden Personen:`n`n
Max Mustermann `t Durchwahl: 1111`n`n
Liste Ihrer Dokumente in der Druckstraße:`n $DocList",
"Dokument an Druckerstraße übergeben!`n`n", [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
Die Anzahl der Dokumente haut super hin, aber ich bekomme nicht den Namen der Dokumente als Liste mit rein.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 510115
Url: https://administrator.de/contentid/510115
Ausgedruckt am: 19.12.2024 um 06:12 Uhr
9 Kommentare
Neuester Kommentar
Du musst schon das Array mit entsprechendem String Delimiter versehen um es vernünftig in eine Messagebox einzubauen.
Beispiel mit Newline als Trenner zwischen den Dateinamen
Beispiel mit Newline als Trenner zwischen den Dateinamen
Add-Type -A System.Windows.Forms
$doclist = Get-ChildItem -Path "K:\LUP\50_Bescheiddruck" -Filter *.pdf -File
[System.Windows.Forms.MessageBox]::Show("Dateien:`n`n$($doclist.Name -join "`n")")
Btw.
$DocList = Get-ChildItem -Path "K:\LUP\50_Bescheiddruck" -Filter *.pdf | Select-Object Name, CreationTime | Where-Object Name -like $env:USERNAME
Das wird übrigens nicht funktionieren außer deine Datei hat genau den Namen des Users inkl. der erweiterung *.pdf . Ein User mit .pdf am Ende seines SAM wirds wohl bei dir nicht geben ...Wenn dann so$DocList = Get-ChildItem -Path "K:\LUP\50_Bescheiddruck" -Filter *.pdf -File | ?{$_.Basename -like "*$env:USERNAME*"}
Ist hier definitiv nicht so, kannst zwar mit Füllzeichen(Leerzeichen) aufüllen, aber ne Msgbox ist ne wahrlich schlechte Wahl für sowas vor allem wenn die Liste länger wird sieht man nicht mehr alles weil es aus dem Bildschirm raus läuft, schau dir stattdessen mal Out-Gridview an, oder bau dir ne eigene Form.
Zitat von @Pat.bat:
Werde ich machen, Perfekt wäre das dann, wenn man einzelne Dokumente in der Form auswählen und löschen könnte. Ich schaue mal ob ich das hinbekomme. Hab bis jetzt nur im FormEditor von VS und VB.Net "gebastelt"
Das kannst du sogar mit Out-GridView in der Pipeline machenWerde ich machen, Perfekt wäre das dann, wenn man einzelne Dokumente in der Form auswählen und löschen könnte. Ich schaue mal ob ich das hinbekomme. Hab bis jetzt nur im FormEditor von VS und VB.Net "gebastelt"
Die zu löschenden Files markierst du (auch mehrere mit STRG usw.) dann einfach im Gridview und klickst auf OK. Das -whatif ist hier nur für deinen Testlauf.
gci d:\whatever\*.pdf -File | ogv -OutputMode Multiple | remove-item -WhatIf
Zitat von @Pat.bat:
@141575 Eine Sache noch, durch das einbinden von $DocList werden nun sämtliche Sonderzeichen uncodiert ausgegeben, also unschön. Wie bekomme ich das wieder als utf8 kodiert hin?
Nö, geht out of the Box :-P, du solltest mal dein Konsolenencoding prüfen...@141575 Eine Sache noch, durch das einbinden von $DocList werden nun sämtliche Sonderzeichen uncodiert ausgegeben, also unschön. Wie bekomme ich das wieder als utf8 kodiert hin?
Servus,
vielleicht auch interessant: https://smsagent.blog/2017/08/24/a-customisable-wpf-messagebox-for-power ...
vielleicht auch interessant: https://smsagent.blog/2017/08/24/a-customisable-wpf-messagebox-for-power ...