Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Název poskytovatele
Systém souborů
Drives
C:, D:... Temp:
Capabilities
Krátký popis
Poskytuje přístup k souborům a adresářům.
Podrobný popis
Zprostředkovatel FileSystem PowerShellu umožňuje získat, přidat, změnit, vymazat a odstranit soubory a adresáře v PowerShellu.
Jednotky FileSystem tvoří hierarchický systém názvů, který obsahuje adresáře a soubory na vašem počítači. Jednotka FileSystem může být logická nebo fyzická jednotka, adresář nebo mapovaná síťová složka.
Počínaje verzí 7.0 PowerShellu je jednotka s názvem Temp: mapována na dočasný adresář 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 nebo /tmp, pokud není definovaná proměnná prostředí.
Poskytovatel FileSystem podporuje následující rutiny, které jsou popsané v tomto článku.
- Získat-Umístění
- Nastavit-Uměstění
- Získat-Položku
- Get-ChildItem
- vyvolání položky
- Přesunout položku
- Nová položka
- Odebrat-Item
- Get-ItemProperty
- Set-ItemProperty
- vymazat položku
- Clear-ItemProperty
- Odebrat-Item
- Remove-ItemProperty
- Get-Acl
- set-Acl
- Get-AuthenticodeSignature
- Nastavit-AuthenticodePodpis
- Přidat obsah
- Vymazat obsah
- Získat obsah
- Nastavit obsah
Typy vystavené tímto poskytovatelem
Soubory jsou instancemi třídy System.IO.FileInfo. 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. Například možné hodnoty vlastnosti LinkType závisí na používané platformě a systému souborů. Systémy souborů s Linuxem a macOS podporují HardLink a SymLink. Systém Windows NTFS podporuje HardLink, SymLink, Junctiona několik dalších hodnot pro LinkType.
Pokud používáte Get-Item nebo Get-ChildItem k informacím o propojené položce, vlastnost Mode obsahuje l označující, že položka je odkaz. Vlastnost LinkType obsahuje typ odkazu.
AppExecLink odkazy se vytvoří při instalaci aplikace z Microsoft Storu. U odkazů AppExecLink systém Windows neposkytuje hodnoty pro vlastnosti jako jsou 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 ->
Navigace v jednotkách systému souborů
Poskytovatel FileSystem zpřístupňuje svá úložiště dat namapováním všech logických jednotek na počítači jako jednotky PowerShellu. Chcete-li pracovat na jednotce FileSystem, můžete změnit umístění na jednotku pomocí názvu jednotky následovaného dvojtečkou (:).
Set-Location C:
Můžete také pracovat s poskytovatelem FileSystem z libovolné jiné jednotky PowerShellu. Chcete-li 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 známým způsobem s cestami zprostředkovatele. Příkazy jako dir a ls jsou teď 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 používání cmdletu 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\ do složky 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 soubor a.txt z adresáře C:\a do adresáře C:\a\bb.
Copy-Item -Path C:\a\a.txt -Destination C:\a\bb\a.txt
Zkopíruje všechny adresáře a soubory v adresáři C:\a do C:\c adresáře. Pokud některý z adresářů, které chcete 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 najdete v Copy-Item.
Přesouvání souborů a adresářů
Tento příkaz přesune soubor c.txt v adresáři C:\a do adresáře C:\a\aa:
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. Když použijete 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 souboruTest.txta zobrazí je v konzole.
Get-Content -Path Test.txt
Obsah souboru můžete přesměrovat do jiného cmdletu. Například následující příkaz přečte obsah souboru Test.txt a pak je zadá jako vstup do rutiny ConvertTo-Html:
Get-Content -Path Test.txt | ConvertTo-Html
Obsah souboru můžete také načíst tím, že k předponě cesty poskytovatele přidáte znak dolaru ($). Cesta musí být uzavřena ve složených závorkách z důvodu omezení pojmenování proměnných. Další informace naleznete v tématu about_Variables.
${C:\Windows\System32\drivers\etc\hosts}
Přidání obsahu do souboru
Tento příkaz připojí řetězec "test content" k souboru Test.txt:
Add-Content -Path test.txt -Value "test content"
Existující obsah v souboru Test.txt se neodstraní.
Nahrazení obsahu souboru
Tento příkaz nahradí obsah souboru Test.txt řetězcem "test content":
Set-Content -Path test.txt -Value "test content"
Přepíše obsah Test.txt. Při vytváření můžete k přidání obsahu do souboru použít parametr Value rutiny New-Item.
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ů, přičemž každý řádek je v souboru jako jeden řetězec.
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á soubor Employees.txt, rozdělí jej na oddíly, z nichž každý končí slovy "Konec záznamu zaměstnance," a uloží jej do proměnné $e.
Druhý příkaz pomocí notace pole získá první položku v kolekci v $e. Používá index 0, protože pole PowerShellu jsou založená na nule.
Další informace o rutině Get-Content naleznete v tématu nápovědy pro Get-Content.
Další informace o polích naleznete 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 do rutiny Get-Member nebo se podívejte na třídu FileSecurity.
Vytváření souborů a adresářů
Vytvoření adresáře
Tento příkaz vytvoří adresář logfiles na jednotce C:
New-Item -Path C:\ -Name logfiles -Type Directory
PowerShell obsahuje také funkci mkdir (alias md), která k vytvoření nového adresáře používá rutinu New-Item.
Vytvoření souboru
Tento příkaz vytvoří soubor log2.txt v adresáři C:\logfiles a pak do souboru přidá řetězec "testovací protokol":
New-Item -Path C:\logfiles -Name log2.txt -Type File
Vytvoření souboru s obsahem
Vytvoří soubor s názvem log2.txt v adresáři C:\logfiles 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 soubor a.txt v adresáři C:\a na b.txt:
Rename-Item -Path C:\a\a.txt -NewName b.txt
Přejmenování adresáře
Tento příkaz přejmenuje adresář C:\a\cc 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í soubor Test.txt 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 názvu souboru .xml:
Remove-Item -Path *.xml
Spuštění programu vyvoláním přidruženého souboru
Vyvolání souboru
Cmdlet Get-Service získá informace o místních službách a předá je cmdletu Export-Csv, aby uložil informace do souboru Services.csv.
Pak Invoke-Item otevře services.csv soubor v programu asociovaného s příponou .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 parametr System k získání pouze položek s atributem "system".
K získání položek v aktuálním adresáři a všech podadresářích používá parametr Recurse.
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á Atributy parametr se dvěma hodnotami, !Directory+Hidden, který 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í big-endianového pořadí bajtů. -
bigendianutf32: Kóduje ve formátu UTF-32 s použitím big-endian bajtového pořadí. -
oem: Používá výchozí kódování pro MS-DOS a konzolové programy. -
unicode: Kóduje ve formátu UTF-16 pomocí pořadí malých bajtů. -
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é cmdlety
Add-ContentGet-ContentSet-Content
Oddělovač <řetězec>
Určuje oddělovač, který Get-Content používá k rozdělení souboru na objekty při čtení.
Výchozí hodnota je \n, znak 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
Pokud je hodnota parametru Delimiter prázdným řetězcem, Get-Content nic nevrací. Jedná se o známý problém. Pokud chcete vynutit, aby Get-Content vrátil celý soubor jako jediný, nedemitovaný řetězec, zadejte hodnotu, která v souboru neexistuje.
Podporované cmdlety
Get-Content
Počkejte <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í program Get-Content kontroluje soubor každou sekundu, dokud ho nepřerušíte, například stisknutím kombinace kláves CTRL+C.
Podporované cmdlety
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 Atributy byl zaveden v prostředí Windows PowerShell 3.0.
Parametr Attributes podporuje následující atributy:
- archivu
- komprimované
- zařízení
- Adresář
- šifrované
- Skryto
- Normální
- Nezaindexováno obsahem
- offline
- jen pro čtení
- ReparsePoint
-
ŘídkýSoubor - Systém
- dočasné
Popis těchto atributů najdete v FileAttributes výčtu.
Ke kombinování atributů použijte následující operátory.
-
!- NE -
+-A -
,– OR
Mezi operátorem a jeho atributem nejsou povoleny žádné mezery. Mezery jsou však povoleny před čárkami.
Podporované cmdlety
Get-ChildItem
<adresář> switchParameter
Získává adresáře (složky).
Parametr adresáře
Pokud chcete získat pouze adresáře, použijte parametr Directory a vynechte parametr File. Pokud chcete vyloučit adresáře, použijte parametr soubor
Podporované cmdlety
Get-ChildItem
Soubor <SwitchParameter>
Získá soubory.
Parametr File byl zaveden ve Windows PowerShellu 3.0.
Pokud chcete získat pouze soubory, použijte parametr File a vynechte parametr Directory. Pokud chcete vyloučit soubory, použijte parametr adresáře
Podporované cmdlety
Get-ChildItem
Skrytý <SwitchParameter>
Získá pouze skryté soubory a adresáře (složky). Ve výchozím nastavení Get-ChildItem získá pouze položky, které nejsou skryté.
Parametr Hidden byl zaveden ve Windows PowerShellu 3.0.
Pokud chcete získat jenom skryté položky, použijte parametr Hidden, jeho h nebo aliasy ah nebo hodnotu Hidden parametru Attributes. Chcete-li vyloučit skryté položky, vynecháte parametr Hidden nebo použijte parametr Atributy.
Podporované cmdlety
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 alias ar nebo hodnotu ReadOnly parametru Atributy. Chcete-li vyloučit položky jen pro čtení, použijte parametr Atributy.
Podporované cmdlety
Get-ChildItem
Systémový <přepínačParameter>
Získá pouze systémové soubory a adresáře (složky).
Parametr systému
Pokud chcete získat pouze systémové soubory a složky, použijte parametr System, jeho alias as nebo hodnotu System parametru Attributes. Chcete-li vyloučit systémové soubory a složky, použijte parametr Atributy.
Podporované cmdlety
Get-ChildItem
NovějšíNež <Datum a čas>
Vrátí $true, pokud je hodnota LastWriteTime souboru větší než zadané datum. V opačném případě 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é cmdlety
Starší <Datum a čas>
Vrátí $true, pokud je LastWriteTime hodnota souboru menší než zadané datum. V opačném případě vrátí $false.
Zadejte objekt DateTime, například objekt, který Get-Date rutina vrátí, nebo řetězec, který lze převést na objekt DateTime, například "August 10, 2011 2:00 PM".
Podporované cmdlety
Test-Path
Stream <řetězce>
Spravuje alternativní datové proudy. Zadejte název datového proudu. Zástupné znaky jsou povoleny pouze u příkazů Get-Item a Remove-Item na jednotce souborového systému.
Podporované cmdlety
Add-ContentClear-ContentGet-ItemGet-ContentRemove-ItemSet-Content
Surový <SwitchParameter>
Ignoruje znaky nového řádku. Vrátí obsah jako jednu položku.
Podporované cmdlety
Get-Content
ItemType <řetězec>
Tento parametr umožňuje určit typ položky, kterou chcete vytvořit pomocí New-Item.
Dostupné hodnoty tohoto parametru závisí na aktuálním poskytovateli, který používáte.
Na jednotce FileSystem jsou povoleny následující hodnoty:
- Soubor
- Adresář
- Symbolický odkaz
- Křižovatka
- Pevný odkaz
Podporované cmdlety
New-Item
Použití kanálu
Příkazy poskytovatele přijímají vstup z potrubí. 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 cmdlety poskytovatele, najdete v referencích na cmdlety obsažených v tomto článku.
Získání nápovědy
Počínaje Windows PowerShellem 3.0 můžete získat přizpůsobená témata nápovědy pro příkazy poskytovatele, která vysvětlují, jak se tyto příkazy 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 CestaGet-Help určit jednotku systému souborů.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path c: