[gelöst] Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
- Holgi
- Guru
- Beiträge: 3381
- Registriert: 12.05.2018, 12:33
- Hat sich bedankt: 434 Mal
- Danke erhalten: 592 Mal
- Gender:
[gelöst] Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
Ich komme da irgendwie nicht weiter.
Ich möchte mit Windows Boardmitteln ein ZIP-Archive extrahieren.
Die grundsätzliche Vorgehensweise ist bekannt und funktioniert:
PowerShell Expand-Archive -Path "Full path of ZIP" -DestinationPath "Full path of folder to extract all"
Wie aber funktioniert das ganze mit relativen Pfaden (z.B. %homepath%\Downloads) und/oder Pfaden mit Leerzeichen (z.B. C:\Users\Darth Vader\Downloads\meine Testdateien\Test.zip)?
Ich habe schon mit einfachen Anführungszeichen und invoke experimentiert, aber bislang keinen Erfolg gehabt.
Kennt sich da jemand aus?
Ich möchte mit Windows Boardmitteln ein ZIP-Archive extrahieren.
Die grundsätzliche Vorgehensweise ist bekannt und funktioniert:
PowerShell Expand-Archive -Path "Full path of ZIP" -DestinationPath "Full path of folder to extract all"
Wie aber funktioniert das ganze mit relativen Pfaden (z.B. %homepath%\Downloads) und/oder Pfaden mit Leerzeichen (z.B. C:\Users\Darth Vader\Downloads\meine Testdateien\Test.zip)?
Ich habe schon mit einfachen Anführungszeichen und invoke experimentiert, aber bislang keinen Erfolg gehabt.
Kennt sich da jemand aus?
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114
- DK2000
- Legende
- Beiträge: 10270
- Registriert: 03.04.2018, 00:07
- Hat sich bedankt: 241 Mal
- Danke erhalten: 745 Mal
- Gender:
Re: Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
Das liegt an der Syntax.
%homepath% ist die Syntax für die Eingabeaufforderung. Die sollte man in der Powershell nicht verwenden.
$env:userprofile ist in dem Falle die Schreibweise für die Powershell:
"$env:userprofile\Downloads" sollte auf C:\Users\<Benutzer>\Downloads zeigen.
Im Grunde genommen müssen alle Umgebungsvariablen über $env: verarbeitet werden.
Und nur nebenbei: Das sind auch "absolute" Pfade, nur ein Teil des Pfades ist in einer Variable abgelegt. Relative Pfade ist das mit den Punkten, also z.B. .\ (bleibe in dem Verzeichnis), ..\ (gehe ein Verzeichnis höher), ..\..\ (gehe zwei Verzeichnisse höher) usw. Aber das nur nebenbei.
%homepath% ist die Syntax für die Eingabeaufforderung. Die sollte man in der Powershell nicht verwenden.
$env:userprofile ist in dem Falle die Schreibweise für die Powershell:
"$env:userprofile\Downloads" sollte auf C:\Users\<Benutzer>\Downloads zeigen.
Im Grunde genommen müssen alle Umgebungsvariablen über $env: verarbeitet werden.
Und nur nebenbei: Das sind auch "absolute" Pfade, nur ein Teil des Pfades ist in einer Variable abgelegt. Relative Pfade ist das mit den Punkten, also z.B. .\ (bleibe in dem Verzeichnis), ..\ (gehe ein Verzeichnis höher), ..\..\ (gehe zwei Verzeichnisse höher) usw. Aber das nur nebenbei.
- Holgi
- Guru
- Beiträge: 3381
- Registriert: 12.05.2018, 12:33
- Hat sich bedankt: 434 Mal
- Danke erhalten: 592 Mal
- Gender:
Re: Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
das klappt leider so nicht.
Der Befehl:
powershell Expand-Archive -Path "$env:userprofile\Downloads\PortableAppz.zip" -DestinationPath C:\Temp\PortableAppz\
ergibt die Fehlermeldung:
Expand-Archive : Es wurde kein Positionsparameter gefunden, der das Argument "VADER\Downloads\PortableAppz.zip"
akzeptiert.
Das User-Verzeichnis hat den Namen "Darth Vader"
Der Befehl:
powershell Expand-Archive -Path "$env:userprofile\Downloads\PortableAppz.zip" -DestinationPath C:\Temp\PortableAppz\
ergibt die Fehlermeldung:
Expand-Archive : Es wurde kein Positionsparameter gefunden, der das Argument "VADER\Downloads\PortableAppz.zip"
akzeptiert.
Das User-Verzeichnis hat den Namen "Darth Vader"
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114
- DK2000
- Legende
- Beiträge: 10270
- Registriert: 03.04.2018, 00:07
- Hat sich bedankt: 241 Mal
- Danke erhalten: 745 Mal
- Gender:
Re: Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
Ach siehst, die Sache mit den Leerzeichen ganz ignoriert, ich pöser Purche:
Wenn das auch nicht geht, gehe ich zum Kühlschrank.
Code: Alles auswählen
-Path "'$env:userprofile\Downloads\PortableAppz.zip'"
- Holgi
- Guru
- Beiträge: 3381
- Registriert: 12.05.2018, 12:33
- Hat sich bedankt: 434 Mal
- Danke erhalten: 592 Mal
- Gender:
Re: Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
super! Dankeschön! Den Weg zum Kühlschrank kannst du dir sparen.
funktioniert mit dem doppelten u n d einfachen Anführungszeichen auch für das Zielverzeichnis.
z.B.
Gibt es eigentlich einen Befehl zwecks Auflistung oder im Internet eine Aufstellung, welche Environment Variablen mit Powershell zulässig sind?
funktioniert mit dem doppelten u n d einfachen Anführungszeichen auch für das Zielverzeichnis.
z.B.
Code: Alles auswählen
powershell Expand-Archive -Path "'$env:userprofile\Downloads\PortableAppz.zip'" -DestinationPath "'C:\Temp\Darth Vader\PortableAppz\'"
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114
- DK2000
- Legende
- Beiträge: 10270
- Registriert: 03.04.2018, 00:07
- Hat sich bedankt: 241 Mal
- Danke erhalten: 745 Mal
- Gender:
Re: Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
Ja, sollte mit Quell und Zielverzeichnis funktionieren und auch mit eigenen Pfaden, die man in Variablen definiert und Leerzeichen enthalten.
Entspricht in der Eingabeaufforderung set
Wobei man hier auch noch anmerken muss, das es von Cmdlet zu Cmdlet unterschiedlich ist mit den Pfaden und den Leerzeichen. Das ist leider nich teinheitlich gelöst:
Bei Get-ItemProperty -Path '"C:\Program Files\*"' funktioniert das mit dem ' und " nicht, hier muss es einfach nur Get-ItemProperty -Path "C:\Program Files\*" bzw. dementsprechend Get-ItemProperty -Path "$env:ProgramFiles\*" heißen, also nur die ".
Code: Alles auswählen
Get-ChildItem env:
Wobei man hier auch noch anmerken muss, das es von Cmdlet zu Cmdlet unterschiedlich ist mit den Pfaden und den Leerzeichen. Das ist leider nich teinheitlich gelöst:
Bei Get-ItemProperty -Path '"C:\Program Files\*"' funktioniert das mit dem ' und " nicht, hier muss es einfach nur Get-ItemProperty -Path "C:\Program Files\*" bzw. dementsprechend Get-ItemProperty -Path "$env:ProgramFiles\*" heißen, also nur die ".
- Holgi
- Guru
- Beiträge: 3381
- Registriert: 12.05.2018, 12:33
- Hat sich bedankt: 434 Mal
- Danke erhalten: 592 Mal
- Gender:
Re: Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
ich habe diese hier mal auf die Schnelle zusammengetragen:
$env:userprofile
$env:windir
$env:homedrive
$env:systemroot
$env:windir
$env:username
$env:temp
$env:systemdrive
$env:programdata
$env:ALLUSERSPROFILE
$env:homedrive
$env:homepath
$env:PUBLIC
was bei mir mit einer Fehlermeldung quittiert wird ist
$env:ProgramFiles(x86)
obwohl dieses mit dem Get-ChildItem env: so ausgeworfen wird:
ProgramFiles(x86) C:\Program Files (x86)
gebe ich in der Powershell
ein, erhalte ich die Fehlermeldung
$env:userprofile
$env:windir
$env:homedrive
$env:systemroot
$env:windir
$env:username
$env:temp
$env:systemdrive
$env:programdata
$env:ALLUSERSPROFILE
$env:homedrive
$env:homepath
$env:PUBLIC
was bei mir mit einer Fehlermeldung quittiert wird ist
$env:ProgramFiles(x86)
obwohl dieses mit dem Get-ChildItem env: so ausgeworfen wird:
ProgramFiles(x86) C:\Program Files (x86)
gebe ich in der Powershell
Code: Alles auswählen
cd $env:ProgramFiles(x86)
Code: Alles auswählen
x86 : Die Benennung "x86" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren
Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und
wiederholen Sie den Vorgang.
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114
- Ben
- ★ Ehrenmitglied ★
- Beiträge: 1032
- Registriert: 28.12.2017, 15:19
- Hat sich bedankt: 47 Mal
- Danke erhalten: 84 Mal
- Gender:
Re: Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
Für "Program Files (X86)" ist die Variable so zu schreiben.
Code: Alles auswählen
cd "${Env:ProgramFiles(x86)}"
- DK2000
- Legende
- Beiträge: 10270
- Registriert: 03.04.2018, 00:07
- Hat sich bedankt: 241 Mal
- Danke erhalten: 745 Mal
- Gender:
Re: Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
Dadurch das Sonderzeichen im Variablen-Namen enthalten sind, muss das dann so aussehen:
Bzw. für Expand-Archive dann so:
Wobei ich gerade mal getestet habe:
Geht auch.
Gibt da verschiedene Möglichkeiten, das zu schreiben.
Code: Alles auswählen
cd ${env:ProgramFiles(x86)}
Code: Alles auswählen
Expand-Archive -Path "${env:ProgramFiles(x86)}\a1234.zip" ....
Code: Alles auswählen
Expand-Archive -Path "${env:userprofile}\Downloads\a1234.zip" ...
Gibt da verschiedene Möglichkeiten, das zu schreiben.
- Holgi
- Guru
- Beiträge: 3381
- Registriert: 12.05.2018, 12:33
- Hat sich bedankt: 434 Mal
- Danke erhalten: 592 Mal
- Gender:
Re: Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
Danke DK2000 und BEN!
Das Thema kann meinethalben als gelöst markiert werden.

Das Thema kann meinethalben als gelöst markiert werden.
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114
- moinmoin
- ★ Team Admin ★
- Beiträge: 62490
- Registriert: 14.11.2003, 11:12
- Hat sich bedankt: 173 Mal
- Danke erhalten: 1011 Mal
- Gender:
Re: [gelöst] Wie kann man ZIP-Archive mit Powershell extrahieren; relative Pfade und Pfade mit Leerzeichen?
Bei der langen Überschrift hab ich es mal davor gesetzt. 
