Datei Attribute in PowerShell anzeigen

Aus Deskmodder Wiki


PowerShell ist ein mächtiges Werkzeug, mit dem man sehr viel auslesen und anzeigen kann. Wenn man in der PowerShell den DIR Befehl aufruft, wird in Wirklichkeit auf den Befehle Get-Childitem zurückgegriffen. Dieses Cmdlet gibt Datei- und Ordnerobjekte zurück. Spezifisch System.IO.FileSystem bzw. System.IO.DirectoryInfo.

Wir zeigen euch hier in diesem Tutorial, wie man Datei Attribute in der PowerShell auslesen kann.


Dieses Tutorial ist für die Windows 10 1903 (und höher), 1809, 1803, 1709, 1703 und 1607 geeignet.


News
Das Tutorial wird natürlich weiter aktualisiert. Auch du kannst mithelfen. Schick uns deine Nachricht über die Tipp-Box. Wichtig: Einige der Windows 10 Tutorials sind auch für Windows 11 gültig

Wenn der Befehl ausgeführt wird, gibt dieser auch eine Modus-Spalte zusätzlich mit zurück.

PS C:\tut> dir *.txt


    Verzeichnis: C:\tut


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       12.08.2017     23:05              0 test1.txt
-a----       12.08.2017     23:05              0 test2.txt
-a----       12.08.2017     23:06              0 test3.txt

Der "Mode" zeigt einen die Attribute der Datei oder des Verzeichnis an. Es ist aber auch möglich, direkt die Attribute zu bekommen:

PS C:\tut> dir *.txt | select Name,Attributes

Name      Attributes
----      ----------
test1.txt    Archive
test2.txt    Archive
test3.txt    Archive

Die Attribute sind eigentlich ein spezieller Objekttyp. Man kann aber auch mit Get-Item eine Versteckte Datei oder einen Versteckten Ordner anzeigen lassen, da "dir" alleine keine versteckten Daten oder Ordner anzeigen wird.

PS C:\tut> $f=get-item .\test1.txt -force
PS C:\tut> $f


    Verzeichnis: C:\tut


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
---h--       12.08.2017     23:05              0 test1.txt


Um nun die Datei oder den Ordner zu verstecken, muss man mit den Attributen arbeiten:

PS C:\tut> $f.attributes="Hidden"
PS C:\tut> $f


    Verzeichnis: C:\tut


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
---h--       12.08.2017     23:05              0 test1.txt

Wenn man nach Speziellen Attributen bei der DIR Auflistung filtern möchte, kann man dies mit dem -match Parameter machen:

PS C:\tut> dir -force | where {$_.attributes -match "Hidden"}


    Verzeichnis: C:\tut


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
---h--       12.08.2017     23:05              0 test1.txt

Man kann auch einfach einen Ordner bei der Erstellung direkt das Hidden Attribute geben. Dafür erstellt man erst einmal einen neuen Ordner:

PS C:\tut> $h=mkdir Test4
PS C:\tut> $h


    Verzeichnis: C:\tut


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       13.08.2017     17:05                Test4

Um ihm nun das Attribute "Hidden" zu geben, muss man wieder .attributes nutzen:

PS C:\tut> $h.attributes="Hidden"
PS C:\tut> $h


    Verzeichnis: C:\tut


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d--h--       13.08.2017     17:05                Test4

Nun wird der Ordner wieder sichtbar gemacht:

PS C:\tut> $f=Get-Item .\Test4\ -force
PS C:\tut> $f


    Verzeichnis: C:\tut


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d--h--       13.08.2017     17:05                Test4

PS C:\tut> $f.attributes="ReadOnly"
PS C:\tut> $f


    Verzeichnis: C:\tut


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-r---       13.08.2017     17:05                Test4

Um nun einer Gruppe von Dateien Attribute zu geben, muss man den Befehl ForEach verwenden:

PS C:\tut> dir t*.zip


    Verzeichnis: C:\tut


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       13.08.2017     17:09           2096 test.zip
-a----       13.08.2017     17:09           2096 test2.zip
-a----       13.08.2017     17:09           2096 test3.zip

PS C:\tut> dir t*.zip | foreach {$_.Attributes="Archive","Hidden"}
PS C:\tut> dir t*.zip -force


    Verzeichnis: C:\tut


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a-h--       13.08.2017     17:09           2096 test.zip
-a-h--       13.08.2017     17:09           2096 test2.zip
-a-h--       13.08.2017     17:09           2096 test3.zip

Es wird hier wieder dir t*.zip -force genutzt, weil nur dann auch Versteckte Dateien mit aufgelistet werden.

Hinweis: Attribute müssen mit einem Komma getrennt werden. Wenn man nicht sicher ist, welche Attribute zur Verfügung stehen, kann man die PowerShell ganz einfach fragen:

PS C:\tut> [enum]::GetNames("system.io.fileattributes")
ReadOnly
Hidden
System
Directory
Archive
Device
Normal
Temporary
SparseFile
ReparsePoint
Compressed
Offline
NotContentIndexed
Encrypted
IntegrityStream
NoScrubData


Danke an Lemoth für das Tutorial


Fragen zu Windows 10?

Info
Du hast noch einen Tipp oder Änderung zum Tutorial? Dann schreibe uns deine Ergänzung über unsere Tipp-Box, damit unser Wiki immer aktuell bleibt. Bitte den Namen oder Link mit angeben.

Du hast Fragen oder benötigst Hilfe? Dann nutze bitte unser Forum und nicht die Tipp-Box! Auch Gäste (ohne Registrierung) können bei uns Fragen stellen oder Fragen beantworten. - Link zum Forum | Forum Windows 10

Tagesaktuelle News im Blog: - Hauptseite | Kategorie: Windows 10 | Kategorie: Apps für Windows
Neue Tutorials für Windows 10 Top 10 der Tutorials für Windows 10