Datei an einem anderen Ort suchen - Powershell
Hallo.
Ich habe folgendes "Problem". Ich habe mir eine kleine UI gebaut, die auf Knopfdruck, also über Favoriten-Buttons bestimmte VHD verbindet.
Diese Sache befindet sich komplett auf einem USB-Stick.
Das funktioniert auch soweit einwandfrei. Nur kommt es ja ntürlich vor, dass man mit dem USB-Stick an einem anderen oder fremden PC einen anderen Laufwerksbuchstaben bekommt.
Die Favoriten werden aus einer ini-Datei gelesen.
Nun möchte ich aber eine automatische Prozedur einbauen, dass wenn der USB-Stick halt nicht als Beispiel Laufwerksbuchstabe E:\ hat, sondern h:\, der Button nach dem neuen Ort der Datei sucht.
Hier mal ein Ausschnitt von meinem Code
Der Fehler aktuell ist, dass ich immer sofort den Fehler bekomme, dass er den Pfad nicht findet.
Wo habe ich hierbei noch einen Fehler, einen Denkfehler drin?
Vielen Dank
Ich habe folgendes "Problem". Ich habe mir eine kleine UI gebaut, die auf Knopfdruck, also über Favoriten-Buttons bestimmte VHD verbindet.
Diese Sache befindet sich komplett auf einem USB-Stick.
Das funktioniert auch soweit einwandfrei. Nur kommt es ja ntürlich vor, dass man mit dem USB-Stick an einem anderen oder fremden PC einen anderen Laufwerksbuchstaben bekommt.
Die Favoriten werden aus einer ini-Datei gelesen.
Nun möchte ich aber eine automatische Prozedur einbauen, dass wenn der USB-Stick halt nicht als Beispiel Laufwerksbuchstabe E:\ hat, sondern h:\, der Button nach dem neuen Ort der Datei sucht.
Hier mal ein Ausschnitt von meinem Code
$paths = GET-WMIOBJECT win32_logicaldisk | select deviceid
# Standardpfad zur VHD
$favorite1_path = 'e:\vhd\beispiel.vhd'
# Ist der Pfad leer, passiert nichts.
if ($favorite1_path -eq "") { return }
# Hier soll das Suchen beginnen. Befindet sich die VHD-Datei nicht am Ort wie in $favorite1_path vorgegeben, soll er über $paths auf allen verbundenen Laufwerksbuchstaben nach der VHD-Datei suchen.
if (!(Test-Path -path "$favorite1_path"))
{
write-host = "Searching ... please wait"
$favorite1_search = Get-ChildItem -path $favorite1_path | select-object name
write-host = $favorite1_search
$favorite1_path = Get-ChildItem -path $paths -Filter "$favorite1_path" -Recurse | select-object FullName
write-host = "Neuer Pfad " $favorite1_path
}
# Findet er die Datei definitiv gar nicht, kommt die Ausgabe.
if (!($favorite1_path))
{
write-host = "No file found"
return
}
Der Fehler aktuell ist, dass ich immer sofort den Fehler bekomme, dass er den Pfad nicht findet.
Wo habe ich hierbei noch einen Fehler, einen Denkfehler drin?
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 279757
Url: https://administrator.de/forum/datei-an-einem-anderen-ort-suchen-powershell-279757.html
Ausgedruckt am: 14.04.2025 um 06:04 Uhr
2 Kommentare
Neuester Kommentar

Moin,
wenn die VHD im selben Pfad wie das Script liegt, bekommst du hiermit den aktuellen Pfad deines Scriptes:
Und wenn du dann nur den Laufwerksbuchstaben davon brauchst erledigt das
und schon weist du wo und auf welchem laufwerk du dich bewegst ...
Gruß grexit
wenn die VHD im selben Pfad wie das Script liegt, bekommst du hiermit den aktuellen Pfad deines Scriptes:
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
$LW = split-path -Qualifier $MyInvocation.MyCommand.Definition
Gruß grexit