- Überblick und Wissenswertes
- Videoanleitung zum Verwalten von Dateien und Verzeichnissen
- Powershell Laufwerke anzeigen
- Auslesen, Ausgeben und Filtern von Dateien
- Videoanleitung – Verwendung der Pipe in der PowerShell
- Objekteigenschaften mit Get-Member anzeigen
- Anlegen, Löschen und Verschieben von Dateien / Ordnern
- Tolles lesenswertes Buch
Überblick und Wissenswertes
Das Arbeiten mit Dateien in der PowerShell ist eigentlich sehr einfach. Die PowerShell kennt nämlich sämtliche gängigen Befehle wie dir
oder ls
. Allerdings beim Wechsel in andere Verzeichnisse muss man beachten, dass es anstatt cd..
dann cd ..
heißt.
Also man darf das Leerzeichen nicht vergessen. Da die PowerShell alles als Objekte auffasst, kann man die Größe einer Datei direkt abfragen. Die PowerShell kennt weiterhin nicht nur das klassische Dateisystem, sondern man kann sich mit get-psdrive
sämtliche momentanen Lokationen anzeigen lassen.
Der Wechsel in andere Laufwerke erfolgt dabei wie gewohnt durch den Laufwerksbuchstaben, gefolgt von einem Doppelpunkt. Wenn man in ein anderes Verzeichnis gewechselt hat, so kann man sich alle dort befindlichen Inhalte auflisten lassen. Es ist dabei egal, ob man dir
, ls
oder get-childitem
verwendet. Alle drei Befehle liefern dieselbe Ausgabe. PowerShell konform ist natürlich das Cmdlet get-childitem
.
Videoanleitung zum Verwalten von Dateien und Verzeichnissen
Powershell Laufwerke anzeigen
Beispiel: Zunächst wechseln wir in das HKLM Verzeichnis und lassen uns anschließend sämtliche Registry Werte von Windows Mail anzeigen.
cd HKLM:
cd SoftwareMicrosoft
Get-ItemProperty '.Windows Mail'
Die Werte in der Registry bekommt man nur zu sehen, wenn man das Cmdlet Get-ItemProperty
verwendet. Das liegt daran, dass die Registry Werte eine Eigenschaft (Property) des Registry-Objekts sind, so wie Größe oder letztes Zugriffsdatum die Eigenschaft einer Datei sind.
Um das Arbeiten mit der Powershell etwas zu vereinfachen, kann man sich auch ein neues Laufwerk anlegen, welches auf einen bestimmten Pfad verweist.
New-PsDrive -name Workspace -psprovider FileSystem -root c:Workspace
Der Ordner Workspace muss natürlich im Laufwerk c: vorhanden sein. Abgesehen davon, muss man auch die dementsprechenden Rechte besitzen.
Auslesen, Ausgeben und Filtern von Dateien
Das Anzeigen, und Ausgeben von Dateien haben wir mit Get-Childitem
schon herausgefunden. Möchte man aber bestimmte Dateien ausschließen, so bietet der Parameter -exclude
genau diese Möglichkeit.
Beispiel 1:
Auflisten aller Dateien im Verzeichnis c:\Workspace ohne *.tmp, und *.temp.
Get-childitem c:\Workspace -Exclude *.tmp, *.temp
Beispiel 2:
Auflisten aller Dateien im Verzeichnis c:\Workspace ohne *.tmp und es sollen ausschließlich der Dateiname und die Dateilänge mit angegeben werden.
Get-childitem c:\Workspace -Exclude *.tmp | Select-Object name,length
Die Pipeline ist hier natürlich sehr hilfreich und nützlich. Wie man solche Befehlsketten mit der Pipe im allgemeinen Aufbau, könnt hier nachlesen oder aber auch im Video die Funktionsweise ansehen.
Videoanleitung – Verwendung der Pipe in der PowerShell
Zum Artikel: Powershell Pipeline richtig verwenden
Objekteigenschaften mit Get-Member anzeigen
Eine Übersicht über alle Objekteigenschaften und Funktionen erhält man mit dem Cmdlet Get-Member
. Man übergibt einfach das Objekt mittels der Pipe (|) an Get-Member.
Beispiel 1: Welche Eigenschaften hat eine Datei?
Get-Childitem | Get-Member
Hier sehen wir wie viele verschiedene Eigenschaften eine Datei hat!
Beispiel 2:
Möchte man sich z. B. nur den letzten Zugriff ausgeben lassen, so benötigt man hierfür die Eigenschaft LastAccessTime
.
Get-Childitem | Select-Object -Property LastAccessTime
Beispiel 3:
Eine tolles Cmdlet ist auch Group-Object
. Hiermit kann man eine Liste von Objekten in Gruppen einteilen. Man kann sich z. B. alle Dienste in zwei Gruppen ausgeben lassen. Also die gestarteten und die gestoppten.
Get-Service | Group-Object status
Beispiel 4:
Viele weitere Informationen erhält man mit dem Cmdlet Measure-Object
. Dieses Cmdlet ist sehr umfangreich. Am besten in der Hilfe nachsehen, welche Möglichkeiten hier geboten sind. Hier ein kleines Beispiel. Diese Ausgabe ist selbsterklärend.
Get-Childitem | Measure-Object length -average -sum -maximum -minimum
Anlegen, Löschen und Verschieben von Dateien / Ordnern
Für das Löschen einer Datei oder eines Verzeichnisses bietet die Powershell das Cmdlet Remove-Item
. Interessanter ist es jedoch, wenn man hier noch eine Bedingung anfügt. Z. B sollen alle Dateien gelöscht werden, welche größer als 2 MB sind.
Get-childitem | where-object {$_.length –gt 2000000} | foreach-object {remove-item $_.fullname}
Das Anlegen neuer Dateien gelingt mit New-Item
gefolgt vom Typ. Also z.B directory für Verzeichnis.
New-Item -ItemType directory testordner
Zu guter letzt kann man Dateien natürlich auch verschieben. Hierzu nimmt man Move-item
Move-item .testordner c:
Tolles lesenswertes Buch
# | Vorschau | Produkt | Preis | |
---|---|---|---|---|
1 | | PowerShell 7 und Windows PowerShell: Das komplette Praxiswissen für Administratoren und IT-Profis…. | 36,90 EUR | Mehr Informationen |
Dieser Artikel beinhaltet Partner-Links. Durch einen Klick darauf gelangt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhält IT-Learner eine kleine Provision. Der Preis ändert sich für euch nicht. Danke für eure Unterstützung! Letzte Aktualisierung am 17.11.2023
Steigere dein Wissen
Kostenlose Befehlsreferenzen und E-Books herunterladen