Delen via


about_FileSystem_Provider

Providernaam

FileSystem

Stations

C:, , ... D:Temp:

Functies

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.

De bestandssysteemstations zijn een hiërarchische naamruimte met de mappen en bestanden op uw computer. Een bestandssysteemstation kan een logisch of fysiek station, map of toegewezen netwerkshare zijn.

De FileSystem-provider ondersteunt de volgende cmdlets, die in dit artikel worden behandeld.

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. Ondersteuning voor HardLink Linux- en macOS-bestandssysteem en SymLink. Windows NTFS ondersteunt HardLink, SymLinken Junctionverschillende andere waarden voor LinkType.

Wanneer u een gekoppeld item gebruikt Get-Item of Get-ChildItem als 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 er worden koppelingen 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
----                 -------------         ------ ----
-a---l          6/8/2023  12:20 PM              0 winget.exe

De FileSystem-provider toont de gegevensarchieven door logische stations op de computer toe tewijsen als PowerShell-stations. Als u wilt werken met een bestandssysteemstation , kunt u uw locatie wijzigen in een station met behulp van de stationsnaam gevolgd door een dubbele punt (:).

Set-Location C:

U kunt ook met de Bestandssysteemprovider werken vanaf een ander PowerShell-station . Als u wilt verwijzen naar een bestand of map vanaf een andere locatie, gebruikt u de stationsnaam (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 recurse, vergelijkbaar met Get-ChildItem.

Met de volgende opdracht worden alle bestanden en mappen onder het pad C:\temp\ naar de map C:\Windows\Tempgekopieerd.

Copy-Item -Path C:\temp\* -Destination C:\Windows\Temp -Recurse -File

Copy-Item Overschrijft bestanden in de doelmap zonder dat u om bevestiging wordt gevraagd.

Met deze opdracht wordt het a.txt bestand gekopieerd 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 C:\c map. 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-Item voor meer informatie.

Bestanden en mappen verplaatsen

Met deze opdracht wordt het c.txt bestand in de C:\a map naar de C:\a\aa map verplaatst:

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 de map op de huidige locatie verplaatst, 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_Variables voor meer informatie.

${C:\Windows\System32\Drivers\etc\hosts}

Inhoud toevoegen aan een bestand

Met deze opdracht 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.txt. U kunt de waardeparameter van de New-Item cmdlet gebruiken om inhoud toe te voegen aan een bestand wanneer u deze maakt.

De inhoud van een bestand doorlopen

Get-Content De cmdlet gebruikt standaard het einde van het 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 parameter Scheidingsteken 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 bestand wordt opgeslagen in de $e variabele.

De tweede opdracht maakt gebruik van matrix-notatie om het eerste item in de verzameling in $ete halen. Er wordt een index van 0 gebruikt, omdat PowerShell-matrices op nul zijn gebaseerd.

Zie het Help-onderwerp voor de cmdlet voor meer informatie over Get-Content cmdlets Get-Content.

Zie about_Arrays voor meer informatie over matrices.

$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 deze opdracht maakt u de logfiles map op het C station:

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 C:\logfiles map 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 C:\a map gewijzigd b.txtin:

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 wordt het Test.txt bestand in de huidige map verwijderd:

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 om informatie over lokale services op te halen en de informatie door te geven aan de cmdlet Export-CSV om de informatie in het Services.csv bestand op te slaan.

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 Bestand gebruikt om alleen bestanden (geen mappen) en de systeemparameter op te halen om alleen items op te halen met het kenmerk 'systeem'.

De parameter Recurse wordt 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 Kenmerken gebruikt met twee waarden, !Directory+Hiddenwaarmee 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.

De parameter Kenmerken wordt gebruikt met twee waarden en EncryptedCompressed . 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 het station met provider.

Encoding <FileSystemCmdletProviderEncoding>

Hiermee geeft u de bestandscodering. De standaardwaarde is ASCII.

  • Ascii Maakt gebruik van ASCII-tekenset (7-bits).
  • BigEndianUnicode Maakt gebruik van UTF-16 met de bytevolgorde big-endian.
  • BigEndianUTF32 Maakt gebruik van UTF-32 met de big-endian bytevolgorde.
  • Byte Codeert een reeks tekens in een reeks bytes.
  • Default Maakt gebruik van de codering die overeenkomt met de actieve codepagina van het systeem (meestal ANSI).
  • Oem Maakt gebruik van de codering die overeenkomt met de huidige OEM-codepagina van het systeem.
  • String Hetzelfde als Unicode.
  • Unicode Maakt gebruik van UTF-16 met de bytevolgorde little-endian.
  • Unknown Hetzelfde als Unicode.
  • UTF7 Maakt gebruik van UTF-7.
  • UTF8 Maakt gebruik van UTF-8.
  • UTF32 Maakt gebruik van UTF-32 met de bytevolgorde little-endian.

Ondersteunde cmdlets

  • Add-Content
  • Get-Content
  • Set-Content

Tekenreeks voor scheidingsteken <>

Hiermee geeft u het scheidingsteken op dat Get-Content wordt gebruikt om het bestand te verdelen in objecten terwijl het wordt gelezen.

De standaardwaarde is \n, het einde van de regelteken.

Wanneer u een tekstbestand leest, Get-Content wordt een verzameling tekenreeksobjecten geretourneerd, die elk eindigt met het scheidingsteken.

Als u een scheidingsteken invoert dat niet in het bestand bestaat, Get-Content wordt het hele bestand geretourneerd als één, niet-gescheiden object.

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 momenteel een lege tekenreeks is, Get-Content wordt er niets geretourneerd. Dit is een bekend probleem. Als u wilt afdwingen Get-Content dat het hele bestand als één niet-gescheiden tekenreeks wordt geretourneerd, voert u een waarde in die niet in het bestand bestaat.

Ondersteunde cmdlets

  • Get-Content

Wait <SwitchParameter>

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, Get-Content controleert u 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
  • Gecomprimeerd
  • Apparaat
  • Directory
  • Gecodeerde
  • Verborgen
  • Normaal
  • NotContentIndexed
  • Offline
  • Readonly
  • ReparsePoint
  • SparseFile
  • Systeem
  • Tijdelijk

Zie de opsomming FileAttributes 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 kenmerk ervan. Spaties zijn echter toegestaan vóór komma's.

Ondersteunde cmdlets

  • Get-ChildItem

Directory <SwitchParameter>

Hiermee haalt u mappen (mappen) op.

De mapparameter is geïntroduceerd in Windows PowerShell 3.0.

Als u alleen mappen wilt ophalen, gebruikt u de mapparameter en laat u de parameter Bestand weg. Als u mappen wilt uitsluiten, gebruikt u de parameter Bestand en laat u de mapparameter weg of gebruikt u de parameter Kenmerken .

Ondersteunde cmdlets

  • Get-ChildItem

Bestandsswitchparameter <>

Hiermee haalt u bestanden op.

De parameter Bestand is geïntroduceerd in Windows PowerShell 3.0.

Als u alleen bestanden wilt ophalen, gebruikt u de parameter Bestand en laat u de mapparameter weg. Als u bestanden wilt uitsluiten, gebruikt u de mapparameter en laat u de parameter Bestand weg of gebruikt u de parameter Kenmerken .

Ondersteunde cmdlets

  • Get-ChildItem

Verborgen <SwitchParameter>

Hiermee worden alleen verborgen bestanden en mappen (mappen) opgeslagen. Get-ChildItem Standaard worden alleen niet-verborgen items opgeslagen.

De verborgen parameter 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 verborgen waarde 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-lezenbestanden en mappen (mappen) opgeslagen.

De readOnly-parameter is geïntroduceerd in Windows PowerShell 3.0.

Als u alleen-lezenitems wilt ophalen, gebruikt u de parameter ReadOnly , ar de alias of de ReadOnly-waarde van de parameter Kenmerken . Als u alleen-lezenitems wilt uitsluiten, gebruikt u de parameter Kenmerken .

Ondersteunde cmdlets

  • Get-ChildItem

SysteemSwitchParameter <>

Hiermee worden alleen systeembestanden en mappen (mappen) opgeslagen.

De systeemparameter is geïntroduceerd in Windows PowerShell 3.0.

Als u alleen systeembestanden en mappen wilt ophalen, gebruikt u de systeemparameter , as de bijbehorende alias of de systeemwaarde van de parameter Kenmerken . Als u systeembestanden en mappen wilt uitsluiten, gebruikt u de parameter Kenmerken .

Ondersteunde cmdlets

  • Get-ChildItem

NewerThan <DateTime>

Retourneert $True wanneer de LastWriteTime waarde van een bestand groter is dan de opgegeven datum. Anders wordt het geretourneerd $False.

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

OlderThan <DateTime>

Retourneert $True wanneer de LastWriteTime waarde van een bestand kleiner is dan de opgegeven datum. Anders wordt het geretourneerd $False.

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 Get-Item toegestaan voor en Remove-Item opdrachten in een bestandssysteemstation.

Ondersteunde cmdlets

  • Add-Content
  • Clear-Content
  • Get-Item
  • Get-Content
  • Remove-Item
  • Set-Content

Raw <SwitchParameter>

Hiermee worden nieuwe regeltekens genegeerd. Retourneert de inhoud als één item.

Ondersteunde cmdlets

  • Get-Content

ItemType-tekenreeks <>

Met deze parameter kunt u het type item opgeven waarmee moet worden gemaakt New-Item.

De beschikbare waarden van deze parameter zijn afhankelijk van de huidige provider die u gebruikt.

In een FileSystem station zijn de volgende waarden toegestaan:

  • Bestand
  • Directory
  • Symbolische koppeling
  • Junction
  • 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. Zie de cmdlet-verwijzingen in dit artikel 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 in een bestandssysteemstation.

Als u de Help-onderwerpen wilt ophalen die zijn aangepast voor het bestandssysteemstation, voert u een Get-Help-opdracht uit op een bestandssysteemstation of gebruikt u de parameter Path om Get-Help een bestandssysteemstation op te geven.

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path c:

Zie ook