Unterordner dazu
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
# Wirft aktuell Fehler, wenn man zurück in das Laufwerkverzeichnis geht!
|
||||
|
||||
Function Main
|
||||
{
|
||||
$LaufwerkAuswahlAktiv = $true
|
||||
$DateiAuswahlAktiv = $true
|
||||
|
||||
while ($LaufwerkAuswahlAktiv)
|
||||
{
|
||||
$Laufwerke = LaufwerkeFinden
|
||||
Write-Host "Gefundene Laufwerke: " $Laufwerke
|
||||
|
||||
$Pfad = Laufwerkwaehlen $Laufwerke
|
||||
Write-Host "Gewähltes Laufwerk: " $Pfad
|
||||
|
||||
$LaufwerkAuswahlAktiv = $false
|
||||
$DateiAuswahlAktiv= $true
|
||||
|
||||
while ($DateiAuswahlAktiv)
|
||||
{
|
||||
$UnterOrdner = UnterOrdnerFinden $Pfad
|
||||
Write-Host "Mögliche Unterordner: " $UnterOrdner
|
||||
|
||||
$TxtDateien = TxtDateienFinden $Pfad
|
||||
Write-Host "Mögliche txt Dateien: " $TxtDateien
|
||||
|
||||
#-> Fall einbauen, wenn es weder Unterordner noch TxtDateien gibt?
|
||||
$AuswahlOptionen = Optionen $UnterOrdner $TxtDateien
|
||||
Write-Host "Auswahloptionen: " $AuswahlOptionen
|
||||
|
||||
$Auswahl = OrdnerWaehlen $Pfad $AuswahlOptionen
|
||||
Write-Host "Gewählte Option: " $Auswahl
|
||||
|
||||
if ($Auswahl -ne "Zurueck")
|
||||
{
|
||||
$Pfad = Join-Path -Path $Pfad -ChildPath $Auswahl -Resolve
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Host "Eine Ordnerebene zurück"
|
||||
$Pfad = Split-Path $Pfad
|
||||
Write-Host "Neuer Pfad: " $Pfad
|
||||
|
||||
if ($($Pfad.Length -le 3))
|
||||
{
|
||||
Write-Host "Der Pfad ist kürzer als 3 Zeichen -> Laufwerk wählen"
|
||||
$DateiAusahlAktiv = $false
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host "Aktueller Pfad : " $Pfad
|
||||
|
||||
if ($($Auswahl -match ".txt")) #Besser: Letzte 4 Zeichen von auswahl nehmen und dann -eq
|
||||
{
|
||||
Write-Host "Es handelt sich um eine .txt-Datei"
|
||||
$DateiauswahlAktiv = $false
|
||||
}
|
||||
Write-Host "--------------------------------------------------------------------------------------"
|
||||
# Zwei ifs
|
||||
#1 .txt-Datei gewählt -> $DateiAuswahlAktiv = $false
|
||||
#2 Pfad ist aufgrund von "Zurück" leer (kein Laufwerk mehr) -> $LaufwerkauswahlAktiv = $true
|
||||
}
|
||||
|
||||
Write-Host "Gewählte Datei: " $Pfad
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Function LaufwerkeFinden()
|
||||
{
|
||||
$Laufwerke = $(Get-PSDrive | where {$_.Free}).Name
|
||||
$i = 0
|
||||
|
||||
foreach($Laufwerk in $Laufwerke)
|
||||
{
|
||||
$Laufwerke[$i] = $Laufwerk + ":\"
|
||||
$i++
|
||||
}
|
||||
|
||||
return $Laufwerke
|
||||
}
|
||||
|
||||
Function Laufwerkwaehlen($Laufwerke)
|
||||
{
|
||||
$Eingabe = $Laufwerke | Out-GridView -PassThru -Title "Laufwerke"
|
||||
|
||||
return $Eingabe
|
||||
}
|
||||
|
||||
Function UnterOrdnerFinden($Pfad)
|
||||
{
|
||||
#abfangen: keine Ordner vorhanden -> nicht nötig, da keine weitere Verarbeitung
|
||||
return $(Get-Childitem $Pfad -Directory)
|
||||
}
|
||||
|
||||
Function TxtDateienFinden($Pfad)
|
||||
{
|
||||
$TxtDateien = $(Get-Childitem $Pfad\*.txt)
|
||||
|
||||
if ($TxtDateien.Length -gt 0)
|
||||
{
|
||||
return $(Split-Path $TxtDateien -Leaf)
|
||||
}
|
||||
else
|
||||
{
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
Function Optionen($UnterOrdner, $TxtDateien)
|
||||
{
|
||||
#Gibt aktuell auch Index und Typ (System.IO.DirectoryInfo bzw. System.String) zurück
|
||||
$OrdnerFormat = @()
|
||||
$TxtDateienFormat = @()
|
||||
foreach ($Ordner in $UnterOrdner)
|
||||
{
|
||||
$OrdnerFormat += [System.String]$Ordner
|
||||
}
|
||||
foreach ($TxtDatei in $TxtDateien)
|
||||
{
|
||||
$TxtDateienFormat += [System.String]$TxtDatei
|
||||
}
|
||||
|
||||
$Optionen = $OrdnerFormat + $TxtDateienFormat + "Zurueck"
|
||||
|
||||
return $Optionen
|
||||
}
|
||||
|
||||
Function OrdnerWaehlen($Pfad, $AuswahlOptionen)
|
||||
{
|
||||
if ($Pfad -eq "")
|
||||
{
|
||||
$Pfad = "Laufwerke"
|
||||
}
|
||||
|
||||
$Eingabe = $AuswahlOptionen | Out-GridView -PassThru -Title $Pfad
|
||||
|
||||
Write-Host "Gewählte Option in Funktion: " $Input
|
||||
|
||||
return $Eingabe
|
||||
}
|
||||
|
||||
Main
|
||||
Reference in New Issue
Block a user