Share via


about_FileSystem_Provider

Providernaam

Bestandssysteem

Aandrijfeenheden

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 ophalen, toevoegen, wijzigen, wissen en verwijderen in PowerShell.

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.

Vanaf PowerShell versie 7.0 wordt een station met de naam TEMP: toegewezen aan het tijdelijke mappad van de gebruiker. PowerShell gebruikt 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 bestandssysteemprovider 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 .

De FileSystem-provider maakt de gegevensopslag beschikbaar door logische stations op de computer toe te staan als PowerShell-stations. Als u met een bestandssysteemstation wilt werken, kunt u uw locatie wijzigen in een station met behulp van de naam van het station gevolgd door een dubbele punt (:).

Set-Location C:

U kunt ook met de bestandssysteemprovider werken vanaf een ander PowerShell-station. Als u vanaf een andere locatie wilt verwijzen naar een bestand of map, gebruikt u de stationsnaam (C:, D:, ...) in het pad.

Notitie

PowerShell maakt gebruik van aliassen, zodat u op een vertrouwde manier met providerpaden kunt 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 ophalen

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 de 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 gekopieerd naar de map C:\Windows\Temp.

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

Copy-Item Bestanden in de doelmap worden overschreven 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 C:\c map. Als een van de te kopiëren mappen 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

Met de opdracht wordt een bestaand bestand met dezelfde naam niet automatisch overschreven. 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 gebruikt Move-Item 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 doorsnijden naar een andere cmdlet. De volgende opdracht leest bijvoorbeeld de inhoud van het Test.txt bestand en levert deze als invoer aan de cmdlet ConvertTo-HTML :

Get-Content -Path Test.txt | ConvertTo-Html

U kunt ook de inhoud van een bestand ophalen door het providerpad te voorzien van het dollarteken ($). Het pad moet tussen accolades worden geplaatst vanwege naamgevingsbeperkingen voor variabelen. 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.txtwordt overschreven. U kunt de waardeparameter van de cmdlet New-Item gebruiken om inhoud aan een bestand toe te voegen wanneer u het maakt.

De inhoud van een bestand doorlopen

De cmdlet gebruikt standaard Get-Content het einde van regelteken als scheidingsteken, zodat een bestand wordt weergegeven als een verzameling tekenreeksen, met elke regel als één tekenreeks in het bestand.

U kunt de -Delimiter parameter gebruiken om een alternatief scheidingsteken op te geven. Als u het instelt op de tekens die het einde van een sectie of het begin van de volgende sectie aanduken, kunt u het bestand splitsen in logische delen.

De eerste opdracht haalt het Employees.txt bestand op en splitst het in secties, die elk eindigen met de woorden 'Einde van werknemerrecord' en het wordt opgeslagen in de $e variabele.

De tweede opdracht maakt gebruik van matrixnotatie 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.

Zie het Help-onderwerp voor get-content voor meer informatie over Get-Content cmdlets.

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

Deze opdracht retourneert een System.Security.AccessControl.FileSecurity-object :

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 zie Bestandsbeveiligingsklasse .

De ACL voor een bestand wijzigen

een ACL voor een bestand Creatie en instellen

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 de cmdlet New-Item gebruikt 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 Creatie

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 wijzigt u de naam van het a.txt bestand in de C:\a map 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 eerste opdracht gebruikt de cmdlet Get-Service om informatie over lokale services op te halen.

De gegevens worden doorverdeeld naar de cmdlet Export-CSV en worden vervolgens opgeslagen in het Services.csv bestand.

De tweede opdracht maakt gebruik van Invoke-Item om het services.csv bestand te openen 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 ophalen

Systeembestanden ophalen

Met deze opdracht worden systeembestanden in de huidige map en de bijbehorende submappen opgeslagen.

De parameter wordt gebruikt -File om alleen bestanden (geen mappen) op te halen en de -System parameter om alleen items met het kenmerk 'system' op te halen.

De parameter wordt gebruikt -Recurse 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.

Er wordt gebruikgemaakt van de parameter Kenmerken 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 in de huidige map opgehaald die zijn gecomprimeerd of versleuteld.

De parameter wordt gebruikt -Attributes met twee waarden, Compressed en Encrypted. De waarden worden gescheiden door een komma , die de operator 'OR' aangeeft.

Get-ChildItem -Attributes Compressed,Encrypted

Dynamische parameters

Dynamische parameters zijn cmdlet-parameters die worden toegevoegd door een PowerShell-provider en die alleen beschikbaar zijn wanneer de cmdlet wordt gebruikt in het station met provider.

Encoding <Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding>

Hiermee geeft u de bestandscodering. De standaardwaarde is ASCII.

  • ASCII: gebruikt de codering voor de ASCII-tekenset (7-bits).
  • BigEndianUnicode: Codeert in UTF-16-indeling met behulp van de bytevolgorde big-endian.
  • Tekenreeks: gebruikt het coderingstype voor een tekenreeks.
  • Unicode: Codeert in UTF-16-indeling met behulp van de bytevolgorde little-endian.
  • UTF7: codeert in UTF-7-indeling.
  • UTF8: Codeert in UTF-8-indeling.
  • UTF8BOM: Codeert in UTF-8-indeling met Byte Order Mark (BOM)
  • UF8NOBOM: Codeert in UTF-8-indeling zonder Byte Order Mark (BOM)
  • UTF32: Codeert in UTF-32-indeling.
  • Standaard: Codeert op de standaard geïnstalleerde codepagina.
  • OEM: gebruikt de standaardcodering voor MS-DOS en consoleprogramma's.
  • Onbekend: het coderingstype is onbekend of ongeldig. De gegevens kunnen worden behandeld als binair.

Ondersteunde cmdlets

Scheidingsteken <System.String>

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 regelteken.

Bij het lezen van een tekstbestand retourneert Get-Content een verzameling tekenreeksobjecten, die elk eindigen op het scheidingsteken.

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

U kunt deze parameter gebruiken om een groot bestand op 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 -Delimiter parameter momenteel een lege tekenreeks is, retourneert Get-Content niets. Dit is een bekend probleem. Als u wilt afdwingen dat Get-Content het hele bestand als één, niet-gescheiden tekenreeks retourneert, voert u een waarde in die niet in het bestand bestaat.

Ondersteunde cmdlets

Wacht <System.Management.Automation.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.

Tijdens het wachten controleert Get-Content het bestand eenmaal per seconde totdat u het onderbreekt, bijvoorbeeld door op Ctrl+C te drukken.

Ondersteunde cmdlets

Kenmerken <FlagsExpression>

Hiermee worden bestanden en mappen met de opgegeven kenmerken opgehaald. Met deze parameter worden alle kenmerken ondersteund en kunt u complexe combinaties van kenmerken opgeven.

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

De -Attributes parameter ondersteunt de volgende kenmerken:

  • Archiveren
  • Gecomprimeerd
  • Apparaat
  • Directory
  • Versleuteld
  • 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 bijbehorende kenmerk. Spaties vóór komma's zijn echter toegestaan.

Ondersteunde cmdlets

Directory <System.Management.Automation.SwitchParameter>

Hiermee haalt u mappen (mappen) op.

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

Als u alleen mappen wilt ophalen, gebruikt u de -Directory parameter en laat u de -File parameter weg. Als u mappen wilt uitsluiten, gebruikt u de -File parameter en laat u de -Directory parameter weg of gebruikt u de -Attributes parameter.

Ondersteunde cmdlets

Bestandssysteem.Management.Automation.SwitchParameter <>

Hiermee haalt u bestanden op.

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

Als u alleen bestanden wilt ophalen, gebruikt u de -File parameter en laat u de -Directory parameter weg. Als u bestanden wilt uitsluiten, gebruikt u de -Directory parameter en laat u de -File parameter weg of gebruikt u de -Attributes parameter.

Ondersteunde cmdlets

Verborgen <System.Management.Automation.SwitchParameter>

Hiermee haalt u alleen verborgen bestanden en mappen (mappen) op. Get-ChildItem krijgt standaard alleen niet-verborgen items.

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

Als u alleen verborgen items wilt ophalen, gebruikt u de -Hidden parameter, de h bijbehorende aliassen of ahde verborgen waarde van de -Attributes parameter. Als u verborgen items wilt uitsluiten, laat u de -Hidden parameter weg of gebruikt u de -Attributes parameter.

Ondersteunde cmdlets

ReadOnly <System.Management.Automation.SwitchParameter>

Hiermee worden alleen alleen-lezenbestanden en mappen (mappen) weergegeven.

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

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

Ondersteunde cmdlets

System <System.Management.Automation.SwitchParameter>

Hiermee haalt u alleen systeembestanden en mappen (mappen) op.

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

Als u alleen systeembestanden en mappen wilt ophalen, gebruikt u de -System parameter, de as alias of de systeemwaarde van de -Attributes parameter. Gebruik de -Attributes parameter om systeembestanden en mappen uit te sluiten.

Ondersteunde cmdlets

NieuwerThan <System.DateTime>

Retourneert $True wanneer de LastWriteTime waarde van een bestand groter is dan de opgegeven datum. Anders wordt 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 <System.DateTime>

Retourneert $True wanneer de LastWriteTime waarde van een bestand kleiner is dan de opgegeven datum. Anders wordt 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

<Stream System.String>

Beheert alternatieve gegevensstromen. Voer de naam van de stream in. Jokertekens zijn alleen toegestaan in de opdrachten Get-Item for en Remove-Item in een bestandssysteemstation.

Ondersteunde cmdlets

Onbewerkte <SwitchParameter>

Hiermee worden tekens voor nieuwe regels genegeerd. Retourneert inhoud als één item.

Ondersteunde cmdlets

ItemType-tekenreeks <>

Met deze parameter kunt u de waarde van het 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 station zijn de volgende waarden toegestaan:

  • File
  • Directory
  • SymbolicLink
  • Verbinding
  • Hardlink

Ondersteunde cmdlets

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.

Ondersteuning vragen

Vanaf Windows PowerShell 3.0 kunt u aangepaste Help-onderwerpen voor provider-cmdlets krijgen waarin wordt uitgelegd hoe deze cmdlets zich gedragen in een bestandssysteemstation.

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

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

Zie ook

about_Providers