Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Naam van de aanbieder
Bestandssysteem
Schijven
C:, , ... D:Temp:
Capabilities
Filter, ShouldProcess
Korte beschrijving
Biedt toegang tot bestanden en mappen.
Gedetailleerde beschrijving
Met de PowerShell FileSystem provider kunt u bestanden en mappen in PowerShell ophalen, toevoegen, wijzigen, wissen en verwijderen.
Het bestandssysteem station is een hiërarchische naamruimte die de mappen en bestanden op uw computer bevat. Een bestandssysteem station kan een logische of fysieke schijf, map of toegewezen netwerkdeling zijn.
Vanaf PowerShell versie 7.0 wordt een station met de naam Temp: toegewezen aan het tijdelijke mappad van de gebruiker. PowerShell maakt gebruik van de methode .NET GetTempPath() om de locatie van de tijdelijke map te bepalen. In Windows is de locatie hetzelfde als $Env:TEMP. Op niet-Windows-systemen is de locatie hetzelfde als $Env:TMPDIR of /tmp als de omgevingsvariabele niet is gedefinieerd.
De FileSystem-provider ondersteunt de volgende cmdlets, die in dit artikel worden behandeld.
- Bepaal-Locatie
- Locatie instellen
- get-item
- Get-ChildItem-
- item aanroepen
- Item verplaatsen
- nieuw item
- Verwijder-Item
- Get-ItemProperty
- Set-ItemProperty
- Clear-Item wissen
- Clear-ItemProperty
- Verwijder-Item
- Remove-ItemProperty
- Get-Acl-
- Set-acl
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature-
- toevoegen
- clear-content
- Get-Content
- set-content
Typen die door deze provider worden weergegeven
Bestanden zijn exemplaren van de klasse System.IO.FileInfo. Directory's zijn exemplaren van de klasse System.IO.DirectoryInfo.
Het Uitgebreide PowerShell-typesysteem voegt extra eigenschappen toe aan deze objecttypen om aanvullende informatie te bieden. Sommige informatie is platformspecifiek. De mogelijke waarden van de eigenschap LinkType zijn bijvoorbeeld afhankelijk van het platform en bestandssysteem dat wordt gebruikt. Linux- en macOS-bestandssysteem ondersteunen HardLink en SymLink. Windows NTFS ondersteunt HardLink, SymLink, Junctionen verschillende andere waarden voor LinkType-.
Wanneer u Get-Item of Get-ChildItem gebruikt voor informatie over een gekoppeld item, bevat de eigenschap modus een l om aan te geven dat het item een koppeling is. De eigenschap LinkType bevat het type koppeling.
AppExecLink koppelingen worden gemaakt wanneer u een toepassing installeert vanuit de Microsoft Store. Voor AppExecLink koppelingen biedt Windows geen waarden voor de eigenschappen LinkType of LinkTarget.
Get-Item ~\AppData\Local\Microsoft\WindowsApps\winget.exe
Directory: C:\Users\user1\AppData\Local\Microsoft\WindowsApps
Mode LastWriteTime Length Name
---- ------------- ------ ----
la--- 6/8/2023 12:20 PM 0 winget.exe ->
Navigeren door de bestandssysteemstations
De FileSystem provider onthult zijn gegevensopslagplaatsen door logische stations op de computer als PowerShell-stations in te stellen. Als u wilt werken met een bestandssysteem station, kunt u uw locatie wijzigen naar een station door gebruik te maken van de stationsnaam gevolgd door een dubbelpunt (:).
Set-Location C:
U kunt ook met het Bestandssysteem provider werken vanaf een ander PowerShell-station. Als u wilt verwijzen naar een bestand of map vanaf een andere locatie, gebruikt u de naam van het station (C:, D:, ...) in het pad.
Notitie
PowerShell maakt gebruik van aliassen om u een vertrouwde manier te bieden om met providerpaden te werken. Opdrachten zoals dir en ls zijn nu aliassen voor Get-ChildItem, cd is een alias voor Set-Location. en pwd is een alias voor Get-Location.
Bestanden en mappen downloaden
De Get-ChildItem cmdlet retourneert alle bestanden en mappen op de huidige locatie. U kunt een ander pad opgeven voor het zoeken en gebruiken van ingebouwde parameters om de diepte van recursie te filteren en te beheren.
Get-ChildItem
Zie Get-ChildItem-voor meer informatie over het gebruik van cmdlets.
Bestanden en mappen kopiëren
De Copy-Item cmdlet kopieert bestanden en mappen naar een locatie die u opgeeft.
Parameters zijn beschikbaar om te filteren en recursie toe te passen, vergelijkbaar met Get-ChildItem.
Met de volgende opdracht worden alle bestanden en mappen onder het pad C:\temp\ gekopieerd naar de map C:\Windows\Temp.
Copy-Item -Path C:\temp\* -Destination C:\Windows\Temp -Recurse -File
Copy-Item bestanden in de doelmap overschrijft zonder dat u om bevestiging wordt gevraagd.
Met deze opdracht kopieert u het a.txt bestand van de C:\a map naar de C:\a\bb map.
Copy-Item -Path C:\a\a.txt -Destination C:\a\bb\a.txt
Kopieert alle mappen en bestanden in de C:\a map naar de map C:\c. Als een van de mappen die u wilt kopiëren al bestaat in de doelmap, mislukt de opdracht, tenzij u de parameter Force opgeeft.
Copy-Item -Path C:\a\* -Destination C:\c -Recurse
Zie Copy-Itemvoor meer informatie.
Bestanden en mappen verplaatsen
Met deze opdracht verplaatst u het c.txt bestand in de C:\a map naar de map C:\a\aa:
Move-Item -Path C:\a\c.txt -Destination C:\a\aa
Standaard overschrijft de cmdlet geen bestaand bestand met dezelfde naam. Als u wilt afdwingen dat de cmdlet een bestaand bestand overschrijft, geeft u de parameter Force op.
U kunt een map niet verplaatsen wanneer deze map de huidige locatie is. Wanneer u Move-Item gebruikt om de map op de huidige locatie te verplaatsen, ziet u deze fout.
C:\temp> Move-Item -Path C:\temp\ -Destination C:\Windows\Temp
Move-Item : Cannot move item because the item at 'C:\temp\' is in use.
At line:1 char:1
+ Move-Item C:\temp\ C:\temp2\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Move-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.MoveItemCommand
Bestandsinhoud beheren
De inhoud van een bestand ophalen
Met deze opdracht wordt de inhoud van het bestand 'Test.txt' opgehaald en weergegeven in de console.
Get-Content -Path Test.txt
U kunt de inhoud van het bestand doorsluisen naar een andere cmdlet. Met de volgende opdracht wordt bijvoorbeeld de inhoud van het Test.txt-bestand gelezen en vervolgens geleverd als invoer voor de cmdlet ConvertTo-Html-:
Get-Content -Path Test.txt | ConvertTo-Html
U kunt ook de inhoud van een bestand ophalen door het pad van de provider te voorzien van het dollarteken ($). Het pad moet tussen accolades staan vanwege beperkingen voor variabele naamgeving. Zie about_Variablesvoor meer informatie.
${C:\Windows\System32\drivers\etc\hosts}
Inhoud toevoegen aan een bestand
Met dit commando wordt de tekenreeks "testinhoud" toegevoegd aan het Test.txt-bestand.
Add-Content -Path test.txt -Value "test content"
De bestaande inhoud in het Test.txt-bestand wordt niet verwijderd.
De inhoud van een bestand vervangen
Met deze opdracht wordt de inhoud van het Test.txt-bestand vervangen door de tekenreeks testinhoud:
Set-Content -Path test.txt -Value "test content"
De inhoud van Test.txtwordt overschreven. U kunt de parameter Value van de cmdlet New-Item gebruiken om inhoud toe te voegen aan een bestand wanneer u deze maakt.
De inhoud van een bestand doorlopen
De cmdlet Get-Content maakt standaard gebruik van het einde van regelteken als scheidingsteken, zodat het een bestand als een verzameling tekenreeksen ophaalt, waarbij elke regel als één tekenreeks in het bestand wordt weergegeven.
U kunt de Scheidingsteken parameter gebruiken om een alternatief scheidingsteken op te geven. Als u dit instelt op de tekens die het einde van een sectie of het begin van de volgende sectie aangeven, kunt u het bestand splitsen in logische onderdelen.
Met de eerste opdracht wordt het Employees.txt bestand opgehaald en gesplitst in secties, die elk eindigen met de woorden 'Einde van werknemersrecord' en het wordt opgeslagen in de $e variabele.
De tweede opdracht maakt gebruik van matrix-notatie om het eerste item in de verzameling in $eop te halen. Er wordt een index van 0 gebruikt, omdat PowerShell-matrices op nul zijn gebaseerd.
Voor meer informatie over het cmdlet Get-Content, zie het Help-onderwerp voor de Get-Content.
Zie about_Arraysvoor meer informatie over arrays.
$e = Get-Content C:\test\employees.txt -Delimited "End Of Employee Record"
$e[0]
Beveiligingsdescriptors beheren
De ACL voor een bestand weergeven
Met deze opdracht wordt een System.Security.AccessControl.FileSecurity--object geretourneerd:
Get-Acl -Path test.txt | Format-List -Property *
Voor meer informatie over dit object sluist u de opdracht door naar de cmdlet Get-Member of bekijkt u de FileSecurity-klasse.
Bestanden en mappen maken
Een map maken
Met dit commando maakt u de logfiles directory op het C station aan.
New-Item -Path C:\ -Name logfiles -Type Directory
PowerShell bevat ook een mkdir-functie (alias md) die gebruikmaakt van de New-Item-cmdlet om een nieuwe map te maken.
Een bestand maken
Met deze opdracht maakt u het log2.txt bestand in de C:\logfiles map en voegt u vervolgens de tekenreeks 'testlogboek' toe aan het bestand:
New-Item -Path C:\logfiles -Name log2.txt -Type File
Een bestand met inhoud maken
Hiermee maakt u een bestand met de naam log2.txt in de map C:\logfiles en voegt u de tekenreeks 'testlogboek' toe aan het bestand.
New-Item -Path C:\logfiles -Name log2.txt -Type File -Value "test log"
De naam van bestanden en mappen wijzigen
De naam van een bestand wijzigen
Met deze opdracht wordt de naam van het a.txt bestand in de map C:\a gewijzigd in b.txt:
Rename-Item -Path C:\a\a.txt -NewName b.txt
De naam van een map wijzigen
Met deze opdracht wordt de naam van de C:\a\cc map gewijzigd in C:\a\dd:
Rename-Item -Path C:\a\cc -NewName dd
Bestanden en mappen verwijderen
Een bestand verwijderen
Met deze opdracht verwijdert u het Test.txt bestand in de huidige map:
Remove-Item -Path test.txt
Bestanden verwijderen met jokertekens
Met deze opdracht verwijdert u alle bestanden in de huidige map met de .xml bestandsnaamextensie:
Remove-Item -Path *.xml
Een programma starten door een gekoppeld bestand aan te roepen
Een bestand aanroepen
De cmdlet Get-Service haalt informatie over lokale services op en geeft de informatie door aan de cmdlet Export-Csv die de informatie opslaat in het Services.csv-bestand.
Vervolgens opent Invoke-Item het services.csv-bestand in het programma dat is gekoppeld aan de .csv-extensie:
Get-Service | Export-Csv -Path services.csv
Invoke-Item -Path services.csv
Bestanden en mappen met opgegeven kenmerken verkrijgen
Systeembestanden ophalen
Met deze opdracht worden systeembestanden in de huidige map en de bijbehorende submappen opgeslagen.
Hierbij wordt de parameter File gebruikt om alleen bestanden (niet mappen) en de parameter System op te halen om alleen items met het kenmerk Systeem op te halen.
Hierbij wordt de parameter Recurse gebruikt om de items in de huidige map en alle submappen op te halen.
Get-ChildItem -File -System -Recurse
Verborgen bestanden ophalen
Met deze opdracht worden alle bestanden, inclusief verborgen bestanden, in de huidige map opgeslagen.
Hierbij wordt de parameter Attributes gebruikt met twee waarden, !Directory+Hidden, waarmee verborgen bestanden worden opgehaald en !Directory, waarmee alle andere bestanden worden opgehaald.
Get-ChildItem -Attributes !Directory,!Directory+Hidden
dir -Att !d,!d+h is het equivalent van deze opdracht.
Gecomprimeerde en versleutelde bestanden ophalen
Met deze opdracht worden bestanden opgehaald in de huidige map die zijn gecomprimeerd of versleuteld.
Hierbij wordt de parameter Kenmerken gebruikt met twee waarden, Compressed en Encrypted. De waarden worden gescheiden door een komma , die de operator OR vertegenwoordigt.
Get-ChildItem -Attributes Compressed,Encrypted
Dynamische parameters
Dynamische parameters zijn cmdlet-parameters die worden toegevoegd door een PowerShell-provider en zijn alleen beschikbaar wanneer de cmdlet wordt gebruikt in een door een provider ondersteund station.
Codering <codering>
Geeft de bestandscodering op. De standaardwaarde is ASCII.
-
ascii: maakt gebruik van de codering voor de ASCII-tekenset (7-bits). -
bigendianunicode: Codeert in UTF-16-indeling met behulp van de bytevolgorde big-endian. -
bigendianutf32: Codeert in UTF-32-indeling met behulp van de bytevolgorde big-endian. -
oem: maakt gebruik van de standaardcodering voor MS-DOS- en consoleprogramma's. -
unicode: Codeert in UTF-16-indeling met de bytevolgorde little-endian. -
utf7: Codeert in UTF-7-formaat. -
utf8: Codeert in UTF-8-indeling. -
utf8BOM: Codeert in UTF-8-indeling met Byte Order Mark (BOM) -
utf8NoBOM: Codeert in UTF-8-indeling zonder Byte Order Mark (BOM) -
utf32: Codeert in UTF-32-indeling.
Ondersteunde cmdlets
Add-ContentGet-ContentSet-Content
Scheidingsteken <tekenreeks>
Hiermee geeft u het scheidingsteken op dat Get-Content gebruikt om het bestand te verdelen in objecten terwijl het wordt gelezen.
De standaardwaarde is \n, het einde van het regelteken.
Wanneer u een tekstbestand leest, retourneert Get-Content een verzameling tekenreeksobjecten, die elk eindigt met het scheidingsteken.
Als u een scheidingsteken invoert dat niet in het bestand bestaat, Get-Content het hele bestand als één niet-gescheiden object retourneert.
U kunt deze parameter gebruiken om een groot bestand te splitsen in kleinere bestanden door een bestandsscheidingsteken op te geven, zoals 'Einde van voorbeeld', als scheidingsteken. Het scheidingsteken blijft behouden (niet verwijderd) en wordt het laatste item in elke bestandssectie.
Notitie
Wanneer de waarde van de parameter Scheidingsteken van Get-Content het hele bestand als één niet-gescheiden tekenreeks retourneert, voert u een waarde in die niet in het bestand bestaat.
Ondersteunde cmdlets
Get-Content
Wacht <SchakelParameter>
Wacht totdat inhoud aan het bestand is toegevoegd. Als inhoud wordt toegevoegd, wordt de toegevoegde inhoud geretourneerd. Als de inhoud is gewijzigd, wordt het hele bestand geretourneerd.
Wanneer u wacht, controleert Get-Content het bestand eenmaal per seconde totdat u het onderbreekt, bijvoorbeeld door op Ctrl+C te drukken.
Ondersteunde cmdlets
Get-Content
Kenmerken <FlagsExpression>
Hiermee worden bestanden en mappen opgehaald met de opgegeven kenmerken. Deze parameter ondersteunt alle kenmerken en kunt u complexe combinaties van kenmerken opgeven.
De parameter Kenmerken is geïntroduceerd in Windows PowerShell 3.0.
De parameter Kenmerken ondersteunt de volgende kenmerken:
- archiveren
- gecomprimeerde
- Apparaat
- Directory-
- Versleutelde
- verborgen
- Normaal
- NietInhoudGeïndexeerd-
- offline
- Alleen-lezen
- ReparsePoint-
- SparseFile-
- System
- tijdelijke
Zie de FileAttributes opsomming voor een beschrijving van deze kenmerken.
Gebruik de volgende operators om kenmerken te combineren.
-
!- NIET -
+-EN -
,-OF
Er zijn geen spaties toegestaan tussen een operator en het attribuut ervan. Spaties zijn echter toegestaan vóór komma's.
Ondersteunde cmdlets
Get-ChildItem
Map <SwitchParameter>
Hiermee haalt u mappen op.
De parameter Directory is geïntroduceerd in Windows PowerShell 3.0.
Als u alleen mappen wilt ophalen, gebruikt u de parameter Directory en laat u de parameter File weg. Als u mappen wilt uitsluiten, gebruikt u de parameter File en laat u de parameter Directory weg of gebruikt u de parameter Attributes.
Ondersteunde cmdlets
Get-ChildItem
Bestand <SwitchParameter->
Hiermee haalt u bestanden op.
De parameter File is geïntroduceerd in Windows PowerShell 3.0.
Als u alleen bestanden wilt ophalen, gebruikt u de parameter File en laat u de parameter Directory weg. Als u bestanden wilt uitsluiten, gebruikt u de parameter Directory en laat u de parameter File weg of gebruikt u de parameter Attributes.
Ondersteunde cmdlets
Get-ChildItem
Verborgen <SwitchParameter>
Hiermee worden alleen verborgen bestanden en mappen opgehaald. Standaard krijgt Get-ChildItem alleen niet-verborgen items.
De parameter Verborgen is geïntroduceerd in Windows PowerShell 3.0.
Als u alleen verborgen items wilt ophalen, gebruikt u de parameter Verborgen, de bijbehorende h of ah aliassen, of de waarde Verborgen van de parameter Kenmerken. Als u verborgen items wilt uitsluiten, laat u de parameter Verborgen weg of gebruikt u de parameter Kenmerken.
Ondersteunde cmdlets
Get-ChildItem
ReadOnly <SwitchParameter->
Hiermee worden alleen alleen-lezen bestanden en mappen verkregen.
De parameter ReadOnly is geïntroduceerd in Windows PowerShell 3.0.
Als u alleen-lezenitems wilt ophalen, gebruikt u de parameter ReadOnly, de bijbehorende alias ar, of de waarde ReadOnly van de parameter Kenmerken. Als u alleen-lezenitems wilt uitsluiten, gebruikt u de parameter kenmerken.
Ondersteunde cmdlets
Get-ChildItem
Systeem <SwitchParameter>
Hiermee worden alleen systeembestanden en mappen verkregen.
De parameter System is geïntroduceerd in Windows PowerShell 3.0.
Als u alleen systeembestanden en mappen wilt ophalen, gebruikt u de parameter System, de bijbehorende as alias of de System-waarde van de parameter Kenmerken. Als u systeembestanden en mappen wilt uitsluiten, gebruikt u de parameter Kenmerken.
Ondersteunde cmdlets
Get-ChildItem
Nieuwerdan <DatumTijd>
Retourneert $true wanneer de LastWriteTime waarde van een bestand groter is dan de opgegeven datum. Anders wordt $falsegeretourneerd.
Voer een DateTime--object in, zoals een object dat door de cmdlet Get-Date wordt geretourneerd, of een tekenreeks die kan worden geconverteerd naar een DateTime--object, zoals "August 10, 2011 2:00 PM".
Ondersteunde cmdlets
Ouder dan <Datumtijd>
Retourneert $true wanneer de LastWriteTime waarde van een bestand kleiner is dan de opgegeven datum. Anders wordt $falsegeretourneerd.
Voer een DateTime--object in, zoals een object dat door de Get-Date cmdlet wordt geretourneerd, of een tekenreeks die kan worden geconverteerd naar een DateTime--object, zoals "August 10, 2011 2:00 PM".
Ondersteunde cmdlets
Test-Path
Stream <-tekenreeks>
Beheert alternatieve gegevensstromen. Voer de naam van de stream in. Jokertekens zijn alleen toegestaan in Get-Item voor en Remove-Item opdrachten op een bestandssysteemstation.
Ondersteunde cmdlets
Add-ContentClear-ContentGet-ItemGet-ContentRemove-ItemSet-Content
Raw <SwitchParameter>
Negeert nieuwe regeltekens. Retourneert de inhoud als één item.
Ondersteunde cmdlets
Get-Content
ItemType <tekenreeks>
Met deze parameter kunt u het type item opgeven dat moet worden gemaakt met New-Item.
De beschikbare waarden van deze parameter zijn afhankelijk van de huidige provider die u gebruikt.
In een FileSystem schijf zijn de volgende waarden toegestaan:
- Bestand
- Map
- Symbolische koppeling
- Aansluiting
- HardLink
Ondersteunde cmdlets
New-Item
De pijplijn gebruiken
Provider-cmdlets accepteren pijplijninvoer. U kunt de pijplijn gebruiken om de taak te vereenvoudigen door providergegevens van de ene cmdlet naar een andere provider-cmdlet te verzenden. Raadpleeg de cmdlet-verwijzingen die door dit artikel heen zijn verstrekt voor meer informatie over het gebruik van de pijplijn met provider-cmdlets.
Hulp krijgen
Vanaf Windows PowerShell 3.0 kunt u aangepaste help-onderwerpen krijgen voor provider-cmdlets die uitleggen hoe deze cmdlets zich gedragen op een bestandssysteemschijf.
Als u de Help-onderwerpen wilt ophalen die zijn aangepast voor het bestandssysteemstation, voert u een
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path c: