PowerShell und GetFileNameWithoutExtension
Hallo.
Wie bitte funktioniert das mit PowerShell?
OK -----
egal.exe -import "%~1" "%~dpn1.xyz"
ENDE -----
PowerShell:
Invoke-Expression "egal.exe" -import "$i" "$i.xyz"
Zum Problem:
"$i" = Ist eine Datei / Wert mit den Namen: "test.txt"
"$i.xyz" = Eine Datei auf der FP mit den Namen: "test.xyz", die verwendet werden soll
Führt man den Befehl aus erscheint die Fehlermeldung:
Error opening file test.txt.xyz: Requested URL is not valid or cannot be found
Dies ist nachvollziehbar, da die Extension .txt mit übergeben wurde,
und der Dateiname auf der FP nur "test.xyz" heißt.
Die Möglichkeiten mit:
[System.IO.Path]::GetFileNameWithoutExtension
[System.IO.Path]::GetExtension
habe ich zwar gefunden, aber irgendwie will das nicht funktionieren.
Was ist nicht richtig, bzw. wie wird "%~dpn1" in PowerShell verwendet?
Danke für eure Hilfe.
Wie bitte funktioniert das mit PowerShell?
OK -----
egal.exe -import "%~1" "%~dpn1.xyz"
ENDE -----
PowerShell:
Invoke-Expression "egal.exe" -import "$i" "$i.xyz"
Zum Problem:
"$i" = Ist eine Datei / Wert mit den Namen: "test.txt"
"$i.xyz" = Eine Datei auf der FP mit den Namen: "test.xyz", die verwendet werden soll
Führt man den Befehl aus erscheint die Fehlermeldung:
Error opening file test.txt.xyz: Requested URL is not valid or cannot be found
Dies ist nachvollziehbar, da die Extension .txt mit übergeben wurde,
und der Dateiname auf der FP nur "test.xyz" heißt.
Die Möglichkeiten mit:
[System.IO.Path]::GetFileNameWithoutExtension
[System.IO.Path]::GetExtension
habe ich zwar gefunden, aber irgendwie will das nicht funktionieren.
Was ist nicht richtig, bzw. wie wird "%~dpn1" in PowerShell verwendet?
Danke für eure Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 640512
Url: https://administrator.de/contentid/640512
Ausgedruckt am: 19.12.2024 um 15:12 Uhr
3 Kommentare
Neuester Kommentar
Zum Problem:
"$i" = Ist eine Datei / Wert mit den Namen: "test.txt"
"$i" = Ist eine Datei / Wert mit den Namen: "test.txt"
$i ist ein String und keine Datei.
Was ist nicht richtig, bzw. wie wird "%~dpn1" in PowerShell verwendet?
Was spricht gegen
[System.IO.Path]::GetFileNameWithoutExtension($i)
oder
$i.Split('\')[-1] -replace '\.\w+$'
Wenn $i eine Datei wäre, könnte auch
$i.BaseName
zielführend sein.
Wenn nur die Dateiendung weggeschnitten werden soll, der Pfad aber erhalten bleiben soll (analog ~dpn), dann vielleicht so:
Das sieht jetzt logischerweise noch eher C#-like aus ... ¯\_(ツ)_/¯ Bin aber kein PowerShell Profi, vielleicht gibt's auch eine schönere Lösung.
Kannst da statt
Steffen
$fullname = "C:\foo\bar.ext"
$dpn = [System.IO.Path]::ChangeExtension($fullname,[NullString]::Value)
Kannst da statt
[NullString]::Value
auch gleich die neue Dateiendung reinhängen Steffen