about_FileSystem_Provider

Název poskytovatele

Systém souborů

Jednotky

C:, D:... Temp:

Možnosti

Filter, ShouldProcess

Krátký popis

Poskytuje přístup k souborům a adresářům.

Podrobný popis

Zprostředkovatel systému souborů PowerShellu umožňuje získat, přidat, změnit, vymazat a odstranit soubory a adresáře v PowerShellu.

Jednotky FileSystem jsou hierarchický obor názvů obsahující adresáře a soubory ve vašem počítači. Jednotka FileSystem může být logická nebo fyzická jednotka, adresář nebo mapovaná síťová sdílená složka.

Počínaje PowerShellem verze 7.0 se volá jednotka TEMP: mapovaná na dočasnou cestu k adresáři uživatele. PowerShell používá metodu .NET GetTempPath() k určení umístění dočasné složky. Ve Windows je umístění stejné jako $env:TEMP. V jiných systémech než Windows je umístění stejné jako $env:TMPDIR proměnná prostředí nebo /tmp pokud není definovaná proměnná prostředí.

Zprostředkovatel FileSystem podporuje následující rutiny, které jsou popsané v tomto článku.

Typy vystavené tímto poskytovatelem

Soubory jsou instance System.IO.FileInfo třídy. Adresáře jsou instance třídy System.IO.DirectoryInfo .

Rozšířený systém typů PowerShellu přidává do těchto typů objektů další vlastnosti, které poskytují další informace. Některé informace jsou specifické pro platformu. Možné hodnoty vlastnosti LinkType jsou například závislé na platformě a použitém systému souborů. Systémy souborů s Linuxem a macOS podporují HardLink a SymLink. systém Windows NT FS podporuje HardLink, SymLink, Junctiona několik dalších hodnot pro LinkType.

Pokud používáte Get-Item nebo Get-ChildItem chcete získat informace o propojené položce, vlastnost Mode obsahuje l indikaci, že položka je odkaz. Vlastnost LinkType obsahuje typ propojení.

AppExecLink odkazy se vytvoří při instalaci aplikace z Microsoft Storu. Pro AppExecLink odkazy Systém Windows neposkytuje hodnoty pro vlastnosti LinkType nebo 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 ->

Zprostředkovatel fileSystem zveřejňuje svá úložiště dat namapováním všech logických jednotek v počítači jako jednotek PowerShellu. Pokud chcete pracovat s jednotkou FileSystem , můžete změnit umístění na jednotku pomocí názvu jednotky následovaného dvojtečka (:).

Set-Location C:

S poskytovatelem systému souborů můžete také pracovat z libovolné jiné jednotky PowerShellu. Pokud chcete odkazovat na soubor nebo adresář z jiného umístění, použijte v cestě název jednotky (C:, D:...).

Poznámka:

PowerShell používá aliasy, které vám umožní pracovat se známým způsobem práce s cestami zprostředkovatele. Příkazy jako dir a ls jsou nyní aliasy pro Get-ChildItem, cd je alias pro Set-Location. a pwd je alias pro Get-Location.

Získání souborů a adresářů

Rutina Get-ChildItem vrátí všechny soubory a adresáře v aktuálním umístění. Můžete zadat jinou cestu pro vyhledávání a použití předdefinovaných parametrů k filtrování a řízení hloubky rekurze.

Get-ChildItem

Další informace o využití rutin najdete v tématu Get-ChildItem.

Kopírování souborů a adresářů

Rutina Copy-Item zkopíruje soubory a adresáře do zadaného umístění. Parametry jsou k dispozici pro filtrování a rekurse, podobně jako Get-ChildItem.

Následující příkaz zkopíruje všechny soubory a adresáře pod cestou C:\temp\ ke složce C:\Windows\Temp.

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

Copy-Item přepíše soubory v cílovém adresáři bez výzvy k potvrzení.

Tento příkaz zkopíruje a.txt soubor z C:\a adresáře do C:\a\bb adresáře.

Copy-Item -Path C:\a\a.txt -Destination C:\a\bb\a.txt

Zkopíruje všechny adresáře a soubory v C:\a adresáři do C:\c adresáře. Pokud některý z adresářů, které se mají zkopírovat, již v cílovém adresáři existuje, příkaz selže, pokud nezadáte parametr Force .

Copy-Item -Path C:\a\* -Destination C:\c -Recurse

Další informace naleznete v tématu Kopírovat položku.

Přesouvání souborů a adresářů

Tento příkaz přesune c.txt soubor v C:\a adresáři do C:\a\aa adresáře:

Move-Item -Path C:\a\c.txt -Destination C:\a\aa

Ve výchozím nastavení rutina nepřepíše existující soubor se stejným názvem. Pokud chcete vynutit, aby rutina přepsala existující soubor, zadejte parametr Force .

Adresář nelze přesunout, pokud je tento adresář aktuálním umístěním. Pokud používáte Move-Item k přesunutí adresáře v aktuálním umístění, zobrazí se tato chyba.

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

Správa obsahu souboru

Získání obsahu souboru

Tento příkaz získá obsah souboru "Test.txt" a zobrazí je v konzole.

Get-Content -Path Test.txt

Obsah souboru můžete převést na jinou rutinu. Například následující příkaz přečte obsah Test.txt souboru a pak je zadá jako vstup do rutiny ConvertTo-Html :

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

Obsah souboru můžete načíst také tak, že předponou cesty poskytovatele použijete znak dolaru ($). Cesta musí být uzavřena ve složených závorkách kvůli omezením pojmenování proměnných. Další informace najdete v tématu about_Variables.

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

Přidání obsahu do souboru

Tento příkaz k souboru připojí řetězec Test.txt "test content":

Add-Content -Path test.txt -Value "test content"

Existující obsah v Test.txt souboru se neodstraní.

Nahrazení obsahu souboru

Tento příkaz nahradí obsah Test.txt souboru řetězcem "test content":

Set-Content -Path test.txt -Value "test content"

Přepíše obsah souboru Test.txt. Parametr Value rutiny New-Item můžete použít k přidání obsahu do souboru při jeho vytvoření.

Procházení obsahu souboru

Rutina Get-Content ve výchozím nastavení používá jako oddělovač znak konce řádku, takže získá soubor jako kolekci řetězců s každým řádkem jako jedním řetězcem v souboru.

K určení alternativního oddělovače můžete použít parametr Oddělovač . Pokud ho nastavíte na znaky, které označují konec oddílu nebo začátek dalšího oddílu, můžete soubor rozdělit na logické části.

První příkaz získá Employees.txt soubor a rozdělí ho do oddílů, přičemž každý z nich končí slovy "Záznam koncového zaměstnance" a uloží ho $e do proměnné.

Druhý příkaz používá maticový zápis k získání první položky v kolekci v $e. Používá index 0, protože pole PowerShellu jsou založená na nule.

Další informace o Get-Content rutině naleznete v tématu nápovědy Get-Content.

Další informace o polích najdete v tématu about_Arrays.

$e = Get-Content c:\test\employees.txt -Delimited "End Of Employee Record"
$e[0]

Správa popisovačů zabezpečení

Zobrazení seznamu ACL pro soubor

Tento příkaz vrátí objekt System.Security.AccessControl.FileSecurity :

Get-Acl -Path test.txt | Format-List -Property *

Další informace o tomto objektu získáte tak, že příkaz předáte rutině Get-Member nebo se zobrazí třída FileSecurity .

Vytváření souborů a adresářů

Vytvoření adresáře

Tento příkaz vytvoří adresář logfiles na C jednotce:

New-Item -Path c:\ -Name logfiles -Type directory

PowerShell obsahuje mkdir také funkci (alias md), která pomocí rutiny New-Item vytvoří nový adresář.

Vytvoření souboru

Tento příkaz vytvoří log2.txt soubor v C:\logfiles adresáři a pak do souboru přidá řetězec testovacího protokolu:

New-Item -Path c:\logfiles -Name log2.txt -Type file

Vytvoření souboru s obsahem

Vytvoří soubor volaný log2.txt v C:\logfiles adresáři a přidá do souboru řetězec "testovací protokol".

New-Item -Path c:\logfiles -Name log2.txt -Type file -Value "test log"

Přejmenování souborů a adresářů

Přejmenování souboru

Tento příkaz přejmenuje a.txt soubor v C:\a adresáři na b.txt:

Rename-Item -Path c:\a\a.txt -NewName b.txt

Přejmenování adresáře

Tento příkaz přejmenuje C:\a\cc adresář na C:\a\dd:

Rename-Item -Path c:\a\cc -NewName dd

Odstraňování souborů a adresářů

Odstranění souboru

Tento příkaz odstraní Test.txt soubor v aktuálním adresáři:

Remove-Item -Path test.txt

Odstranění souborů pomocí zástupných znaků

Tento příkaz odstraní všechny soubory v aktuálním adresáři, které mají příponu .xml názvu souboru:

Remove-Item -Path *.xml

Spuštění programu vyvoláním přidruženého souboru

Vyvolání souboru

Rutina Get-Service pro získání informací o místních službách a předá informace do rutiny Export-Csv pro uložení informací v Services.csv souboru.

Potom Invoke-Item otevře services.csv soubor v programu přidruženém k příponě .csv :

Get-Service | Export-Csv -Path services.csv
Invoke-Item -Path services.csv

Získání souborů a složek se zadanými atributy

Získání systémových souborů

Tento příkaz získá systémové soubory v aktuálním adresáři a jeho podadresářích.

Pomocí parametru File získá pouze soubory (nikoli adresáře) a systémový parametr získá pouze položky s atributem "system".

Pomocí parametru Recurse získá položky v aktuálním adresáři a všech podadresářích.

Get-ChildItem -File -System -Recurse

Získání skrytých souborů

Tento příkaz získá všechny soubory včetně skrytých souborů v aktuálním adresáři.

Používá parametr Attributes se dvěma hodnotami, !Directory+Hiddencož získá skryté soubory a !Directory, který získá všechny ostatní soubory.

Get-ChildItem -Attributes !Directory,!Directory+Hidden

dir -att !d,!d+h je ekvivalentem tohoto příkazu.

Získání komprimovaných a šifrovaných souborů

Tento příkaz získá soubory v aktuálním adresáři, které jsou buď komprimované, nebo zašifrované.

Používá parametr Attributes se dvěma hodnotami Compressed a Encrypted. Hodnoty jsou oddělené čárkou , , která představuje operátor OR.

Get-ChildItem -Attributes Compressed,Encrypted

Dynamické parametry

Dynamické parametry jsou parametry rutiny přidané zprostředkovatelem PowerShellu a jsou k dispozici pouze v případech, kdy se rutina používá na jednotce s podporou poskytovatele.

Kódování kódování <>

Určuje kódování souboru. Výchozí hodnota je ASCII.

  • ascii: Používá kódování znakové sady ASCII (7bitová).
  • bigendianunicode: Kóduje ve formátu UTF-16 pomocí pořadí velkých bajtů.
  • bigendianutf32: Kóduje ve formátu UTF-32 pomocí pořadí velkých bajtů.
  • oem: Používá výchozí kódování pro MS-DOS a konzolové programy.
  • unicode: Kóduje ve formátu UTF-16 pomocí malého bajtového pořadí.
  • utf7: Kóduje ve formátu UTF-7.
  • utf8: Kóduje ve formátu UTF-8.
  • utf8BOM: Kódování ve formátu UTF-8 pomocí značky pořadí bajtů (BOM)
  • utf8NoBOM: Kódování ve formátu UTF-8 bez značky pořadí bajtů (BOM)
  • utf32: Kóduje ve formátu UTF-32.

Podporované rutiny

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

Řetězec oddělovače <>

Určuje oddělovač, který Get-Content používá k rozdělení souboru na objekty při čtení.

Výchozí hodnota je \nznak konce řádku.

Při čtení textového souboru Get-Content vrátí kolekci řetězcových objektů, z nichž každá končí znakem oddělovače.

Zadáním oddělovače, který v souboru neexistuje, Get-Content vrátí celý soubor jako jeden objekt bez oddělovače.

Tento parametr můžete použít k rozdělení velkého souboru na menší soubory zadáním oddělovače souborů, například "Konec příkladu", jako oddělovač. Oddělovač se zachová (nezahodí) a stane se poslední položkou v každé části souboru.

Poznámka:

V současné době platí, že pokud je hodnota parametru Oddělovač prázdný řetězec, Get-Content nic nevrací. Jedná se o známý problém. Pokud chcete vynutit Get-Content vrácení celého souboru jako jednoho řetězce bez omezení, zadejte hodnotu, která v souboru neexistuje.

Podporované rutiny

  • Get-Content

Wait <SwitchParameter>

Čeká na připojení obsahu k souboru. Pokud je obsah připojený, vrátí připojený obsah. Pokud se obsah změnil, vrátí celý soubor.

Při čekání zkontroluje soubor jednou za sekundu, Get-Content dokud ho nepřerušíte, například stisknutím kombinace kláves CTRL+C.

Podporované rutiny

  • Get-Content

<Atributy FlagsExpression>

Získá soubory a složky se zadanými atributy. Tento parametr podporuje všechny atributy a umožňuje zadat složité kombinace atributů.

Parametr Attributes byl zaveden ve Windows PowerShellu 3.0.

Parametr Attributes podporuje následující atributy:

  • Archiv
  • Komprimovaný
  • Zařízení
  • Adresář
  • Zakódovaný
  • Schovaný
  • Normální
  • NotContentIndexed
  • Offline
  • ReadOnly
  • ReparsePoint
  • Řídký soubor
  • Systém
  • Dočasné

Popis těchto atributů najdete ve výčtu FileAttributes .

Ke kombinování atributů použijte následující operátory.

  • ! -NE
  • + -A
  • , -NEBO

Mezi operátorem a jeho atributem nejsou povoleny žádné mezery. Mezery jsou však povoleny před čárkami.

Podporované rutiny

  • Get-ChildItem

SwitchParameter adresáře <>

Získá adresáře (složky).

Parametr Adresář byl představen ve Windows PowerShellu 3.0.

Chcete-li získat pouze adresáře, použijte parametr Directory a vynecháte parametr File . Pokud chcete vyloučit adresáře, použijte parametr File a vyloučíte parametr Directory nebo použijte parametr Attributes .

Podporované rutiny

  • Get-ChildItem

File <SwitchParameter>

Získá soubory.

Parametr File byl představen ve Windows PowerShellu 3.0.

Pokud chcete získat pouze soubory, použijte parametr File a vynecháte parametr Directory . Pokud chcete vyloučit soubory, použijte parametr Directory a vyloučíte parametr File nebo použijte parametr Attributes .

Podporované rutiny

  • Get-ChildItem

Skrytý <přepínačParameter>

Získá pouze skryté soubory a adresáře (složky). Ve výchozím nastavení Get-ChildItem se načte pouze neskrytá pošta.

Skrytý parametr byl představen ve Windows PowerShellu 3.0.

Chcete-li získat pouze skryté položky, použijte skrytý parametr, jeho h nebo ah aliasy nebo hodnotu Hidden parametru Attributes. Chcete-li vyloučit skryté položky, vynecháte skrytý parametr nebo použijte parametr Attributes .

Podporované rutiny

  • Get-ChildItem

ReadOnly <SwitchParameter>

Získá pouze soubory a adresáře jen pro čtení (složky).

Parametr ReadOnly byl zaveden ve Windows PowerShellu 3.0.

Pokud chcete získat pouze položky jen pro čtení, použijte parametr ReadOnly , jeho ar alias nebo hodnotu ReadOnly parametru Attributes . Chcete-li vyloučit položky jen pro čtení, použijte parametr Atributy .

Podporované rutiny

  • Get-ChildItem

Systémový <přepínačParameter>

Získá pouze systémové soubory a adresáře (složky).

Systémový parametr byl zaveden ve Windows PowerShellu 3.0.

Chcete-li získat pouze systémové soubory a složky, použijte parametr System , jeho as alias nebo hodnotu System parametru Attributes . Chcete-li vyloučit systémové soubory a složky, použijte parametr Atributy .

Podporované rutiny

  • Get-ChildItem

<Novější Datum a čas>

Vrátí $True , LastWriteTime když je hodnota souboru větší než zadané datum. V opačném případě se vrátí $False.

Zadejte objekt DateTime, například objekt, který vrací rutina Get-Date, nebo řetězec, který lze převést na objekt DateTime, například "August 10, 2011 2:00 PM".

Podporované rutiny

StaršíThan <DateTime>

Vrátí $True , LastWriteTime když je hodnota souboru menší než zadané datum. V opačném případě se vrátí $False.

Zadejte objekt DateTime, například objekt, který rutina Get-Date vrací, nebo řetězec, který lze převést na objekt DateTime, například "August 10, 2011 2:00 PM".

Podporované rutiny

  • Test-Path

Řetězec streamu <>

Spravuje alternativní datové proudy. Zadejte název datového proudu. Zástupné cardy jsou povoleny pouze Get-Item pro a Remove-Item příkazy v jednotce systému souborů.

Podporované rutiny

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

Raw <SwitchParameter>

Ignoruje znaky nového řádku. Vrátí obsah jako jednu položku.

Podporované rutiny

  • Get-Content

Řetězec ItemType <>

Tento parametr umožňuje zadat typ položky, pomocí které se má vytvořit New-Item.

Dostupné hodnoty tohoto parametru závisí na aktuálním poskytovateli, který používáte.

FileSystem Na jednotce jsou povoleny následující hodnoty:

  • Soubor
  • Adresář
  • Symbolický odkaz
  • Křižovatka
  • Pevný odkaz

Podporované rutiny

  • New-Item

Použití kanálu

Rutiny zprostředkovatele přijímají vstup kanálu. Kanál můžete použít ke zjednodušení úlohy odesláním dat zprostředkovatele z jedné rutiny do jiné rutiny zprostředkovatele. Další informace o tom, jak používat kanál s rutinami zprostředkovatele, najdete v odkazech na rutiny uvedené v tomto článku.

Získání nápovědy

Od windows PowerShellu 3.0 můžete získat přizpůsobená témata nápovědy pro rutiny zprostředkovatele, která vysvětlují, jak se tyto rutiny chovají na jednotce systému souborů.

Pokud chcete získat témata nápovědy, která jsou přizpůsobená pro jednotku systému souborů, spusťte příkaz Get-Help na jednotce systému souborů nebo pomocí parametru Get-Help Cesta určete jednotku systému souborů.

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

Viz také