none
Datei Suche mit gci RRS feed

  • Frage

  • Hallo zusammen,

    ich bin mir grade eine MP3 Verwaltung als Schule Project am bauen. Es soll eine MP3 beinhalten. Habe den Teil des Scripts auch soweit fertig.

    Allerdings wenn nach der Eingabe ins Suchfeld z.B. *Jackson* auf suchen klicke zeigt das Skript mir alle Dateien an die sich auf der HDD befinden.

    Hat eine von Euch vielleicht ne Idee bzw. Lösung?

    Die Abfrage befindet sich in Zeile 34.

    Hier der Code:

    #MP3 Verwaltung 

    [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
    [void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")


    $objForm = New-Object System.Windows.Forms.Form
    $objForm.BackgroundImageLayout = 2
    #$objForm.BackgroundImage =[System.Drawing.Image]::FromFile('C:\Users\fritz\Pictures\Milou Script.jpg')
    $objForm.StartPosition = "CenterScreen"
    $objForm.Size = New-Object System.Drawing.Size(1000,700)
    $objForm.Text ="Musik Verwaltung"
    $objForm.TopMost = "True"

    $Objlabel = New-Object System.Windows.Forms.Label
    $Objlabel.Size = New-Object System.Drawing.Size (100,30)
    $Objlabel.Location = New-Object System.Drawing.Size (30,40)
    $Objlabel.Text ="MP3 Suche"
    $Objlabel.BorderStyle = "Fixed3d"
    $objForm.Controls.Add($Objlabel)

    $ObjSuchBox = New-Object System.Windows.Forms.TextBox
    $ObjSuchBox.Size = New-Object System.Drawing.Size(100,150)
    $ObjSuchBox.Location = New-Object System.Drawing.Size(30,85)
    $ObjSuchBox.Text = ""
    $suche = $ObjSuchBox.Text
    $objForm.Controls.Add($ObjSuchBox)

    $SucheButton = New-Object System.Windows.Forms.Button
    $SucheButton.Location = New-Object System.Drawing.Point(30,110)
    $SucheButton.Size = New-Object System.Drawing.Size(100,30)
    $SucheButton.Text = 'Suche'
    #$SucheButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
    $SucheButton.Add_Click({ gci "G:\" -Filter "*.$suche" -Force -EA Ignore -Recurse -File | select Fullname  | ogv -Title "Dateien wählen" -PassThru }) #| %{start-process $_.Fullname}})
    $ObjForm.AcceptButton = $SucheButton
    $Objform.Controls.Add($SucheButton)
    [void] $objForm.ShowDialog()

    Danke schonmal im voraus.

    Viele Grüße

    Freitag, 15. Januar 2021 10:49

Antworten

  • Das must du auich in den Handler einbauen:

    $SucheButton.Add_Click(
     { 
      $suche = Script:$ObjSuchBox.Text
      gci "G:\" -Filter "*.$suche" -Force -EA Ignore -Recurse -File | select Fullname  | ogv -Title "Dateien wählen" -PassThru }) #| %{start-process $_.Fullname}
     }
    )


    Freitag, 15. Januar 2021 12:14

Alle Antworten

  • Ersetze deinen Filter mit: -Filter "$suche.mp3".


    Freitag, 15. Januar 2021 10:54
  • Erstmal danke für die Antwort.

    Leider macht das nicht das was ich will. Der soll ja danach suchen was ich in das Suchfeld eingebe. Er listet mir aber trotz eingabe *Jackson* alle MP3 dateien auf. Er soll praktisch das Laufwerk g:\ nach allen mp3 suchen die *jackson* beinhalten.

    Freitag, 15. Januar 2021 11:05
  • Das Programm "gci" kann nur nach Dateinamen suchen und nicht nach Inhalten.

    Gib folgendes mal in Powershell ein:

    $Suche = "*Jackson*"
    get-childitem -path "G:\" -filter "$Suche.mp3" -recursive

    Dies ermittelt bei mir alle Dateien, die den Text im Namen enthalten.

    https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-7.1

    Freitag, 15. Januar 2021 11:46
  • Soll er ja auch. In dem Dateinamen kommt ja jackson vor. Wobei dieses ja auch nur ein Beispiel ist. Kann auch Müller oder petry sein oder sonst was. Und danach soll er halt suchen. Nicht nach dem Datei Inhalt.

    Das Problem ist ja das nicht nach dem Inhalt sucht der in der Suchbox steht. 

    $ObjSuchBox.Text = ""
    $suche = $ObjSuchBox.Text

    Freitag, 15. Januar 2021 12:06
  • Das must du auich in den Handler einbauen:

    $SucheButton.Add_Click(
     { 
      $suche = Script:$ObjSuchBox.Text
      gci "G:\" -Filter "*.$suche" -Force -EA Ignore -Recurse -File | select Fullname  | ogv -Title "Dateien wählen" -PassThru }) #| %{start-process $_.Fullname}
     }
    )


    Freitag, 15. Januar 2021 12:14
  • Perfect Ich danke dir vielmals.

    Sorry aber ich fange grade erst an :-)

    Freitag, 15. Januar 2021 12:41
  • Wäre schön, wenn du meine Antwort markierst, wenn sie dir gefällt.
    Freitag, 15. Januar 2021 13:15
  • Perfect Ich danke dir vielmals.

    Sorry aber ich fange grade erst an :-)

    Dafür braucht man sich nicht entschuldigen. Wir haben alle mal angefangen. Aber man sollte sich an ein paar Gepflogenheiten halten ... z.B. Code als Code zu formatieren, Code ohne Aliasse und möglichst ausführlich und gut verständlich zu schreiben und auf Cross-Postings hinzuweisen, damit man seinen Helfern nicht abnötigt, Arbeit im Zweifel mehrfach machen zu müssen.  

    Hier noch was zum Nachlesen für Deinen Powershell-Code:  The PowerShell Best Practices and Style Guide.


    Live long and prosper!

    (79,108,97,102|%{[char]$_})-join''

    Freitag, 15. Januar 2021 13:34