Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Verzeichnis auslesen und als Menü anzeigen

$
0
0

Hallo,

ich legen meine Powershell Scripte in einem Verzeichnis ab. Nun möchte ich nicht 30 Verknüpfungen auf meinem Desktop haben sondern nur noch eine. Das Script soll ein Verzeichnis auslesen und mir die Scriptnamen in dem Verzeichnis ausgeben und zur Auswahl anbieten. Dann möchte ich eine Auswahl treffen und dass das Script aus dem Verzeichnis dann gestartet wird. Zu Anfang frage ich noch den Computernamen ab.

Das Abfragen, auslesen des Verzeichnis und der Aufbau des Menüs funktioniert schon. Nur das mit dem übergeben der Auswahl funktioniert leider nicht. Erkennt jemand wieso?

cls
$Quelle = "\\SRV0016\d$\Tools\Powershell_Scriptsammlung"
$Auswahl = $nul

# Auslesen des Ordners
$Files = gci -name -Path $Quelle *.ps1 | foreach {$_ -replace ".ps1", ""}

$Computername = Read-Host 'Bitte Computername eingeben'

Write-Host "Computername: $Computername"
Write-Host "-------------------------"

# zählen der Namen imOrdner
# (gci $Quelle -filter *.ps1).count

#foreach ($i in $Files)
# {Write-Host $i}

If(@($Files).count -lt 1) {
    Write-host "Keine Script gefunden!"
    $a = Read-Host "beliebige Taste drücken"
    Exit
}

$Zähler = 1

ForEach($i in $Files) {

    Write-Host "$Zähler : $i"
    # Zähler hochzählen
    $Zähler++
}

# user auswahl abfragen
$Auswahl = Read-Host 'Bitte Auswahl treffen (oder E zum Ende)'

# Usr möchten den zauber beenden und hat A eingegeben
If($Auswahl -eq 'E') {
    Write-host 'Script beendet.'
    $a = Read-Host "beliebige Taste drücken"
    Exit
} 

# Auswahl ausführen
Start-Process powershell.exe "$Quelle\$Files[$Auswahl].ps1 $computername"
Write-host ""
Write-host "-------------------------------------"
Write-host "Auswahl:" $Files[$Auswahl]

Wenn 10 Scripte gefunden werden, dann werden diese aus angezeigt. Wähle ich dann z.B. Punkt 9 aus, dann steht hinter Auswahl auch der Richtige Name. Nur wurde nicht das Script 9 gestartet sondern immer das Script 1 gestartet.

Wieso steht hier: Write-host "Auswahl:" $Files[$Auswahl] der richtige Name und hinter Start-Prozess nicht?


IT Berater


Viewing all articles
Browse latest Browse all 2314