Megosztás a következőn keresztül:


about_FileSystem_Provider

Szolgáltató neve

Fájlrendszer

Meghajtók

C:, , D:Temp: ...

Képességek

Szűrő, ShouldProcess

Rövid leírás

Hozzáférést biztosít a fájlokhoz és könyvtárakhoz.

Részletes leírás

A PowerShell-fájlrendszer-szolgáltató lehetővé teszi fájlok és könyvtárak lekérését, hozzáadását, módosítását, törlését és törlését a PowerShellben.

A FileSystem-meghajtók egy hierarchikus névtér, amely a számítógépen található könyvtárakat és fájlokat tartalmazza. A Fájlrendszer-meghajtók lehetnek logikai vagy fizikai meghajtók, címtárak vagy leképezett hálózati megosztások.

A PowerShell 7.0-s verziójától kezdve a rendszer leképez egy hívott TEMP: meghajtót a felhasználó ideiglenes könyvtárútvonalára. A PowerShell a .NET GetTempPath() metódussal határozza meg az ideiglenes mappa helyét. Windows rendszeren a hely megegyezik $env:TEMPa . Nem Windows rendszerű rendszereken a hely megegyezik $env:TMPDIR a környezeti változóval, vagy /tmp ha nincs definiálva.

A Fájlrendszer-szolgáltató az alábbi parancsmagokat támogatja, amelyekről ebben a cikkben szó van.

A szolgáltató által közzétett típusok

A fájlok a System.IO.FileInfo osztály példányai. A könyvtárak a System.IO.DirectoryInfo osztály példányai.

A Bővített PowerShell-típusrendszer további tulajdonságokat ad ezekhez az objektumtípusokhoz, hogy további információkat nyújtson. Egyes információk platformspecifikusak. A LinkType tulajdonság lehetséges értékei például a használt platformtól és fájlrendszertől függenek. Linux és macOS fájlrendszerek támogatása HardLink és SymLink. A Windows NTFS támogatja HardLinka JunctionSymLinkLinkType számos más értékét is.

Csatolt elem használatakor Get-Item vagy Get-ChildItem információként a Mode tulajdonság azt l jelzi, hogy az elem hivatkozás. A LinkType tulajdonság a hivatkozás típusát tartalmazza.

AppExecLink A hivatkozások akkor jönnek létre, amikor telepít egy alkalmazást a Microsoft Store-ból. Hivatkozások esetén AppExecLink a Windows nem ad meg értékeket a LinkType vagy a LinkTarget tulajdonságokhoz.

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

A Fájlrendszer-szolgáltató úgy teszi elérhetővé az adattárait, hogy a számítógépen található logikai meghajtókat PowerShell-meghajtókként megfelelteti. A FileSystem-meghajtók használatához módosíthatja a helyet egy meghajtóra a meghajtó nevével, amelyet kettőspont (kettőspont): követ.

Set-Location C:

A Fájlrendszer-szolgáltatóval bármely más PowerShell-meghajtóról is dolgozhat. Ha másik helyről szeretne fájlra vagy könyvtárra hivatkozni, használja a meghajtó nevét (C:, D:, ...) az elérési úton.

Feljegyzés

A PowerShell aliasokkal teszi lehetővé a szolgáltatói útvonalakkal való munkavégzést. Az olyan parancsok, mint például dir az ls és most már aliasok Get-ChildItem, cd a következőhöz tartoznak Set-Location: . és pwd a Get-Location.

Fájlok és könyvtárak lekérése

A Get-ChildItem parancsmag az aktuális helyen lévő összes fájlt és könyvtárat visszaadja. A rekurziós mélység szűréséhez és szabályozásához megadhat egy másik elérési utat a kereséshez és a beépített paraméterek használatával.

Get-ChildItem

A parancsmagok használatáról a Get-ChildItem című témakörben olvashat bővebben.

Fájlok és könyvtárak másolása

A Copy-Item parancsmag fájlokat és könyvtárakat másol egy ön által megadott helyre. A paraméterek a következőhöz hasonlóan szűrhetők és ismétlődnek Get-ChildItem:

Az alábbi parancs az összes fájlt és könyvtárat átmásolja a mappa C:\Windows\Tempelérési útja C:\temp\ alatt.

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

Copy-Item felülírja a célkönyvtárban lévő fájlokat anélkül, hogy megerősítést kér.

Ez a parancs átmásolja a fájlt a a.txt C:\a könyvtárból a C:\a\bb könyvtárba.

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

Másolja a könyvtárban lévő C:\a összes könyvtárat és fájlt a C:\c könyvtárba. Ha a másolandó könyvtárak bármelyike már létezik a célkönyvtárban, a parancs meghiúsul, hacsak nem adja meg a Force paramétert.

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

További információ: Copy-Item.

Fájlok és könyvtárak áthelyezése

Ez a parancs áthelyezi a c.txt könyvtárban lévő C:\a fájlt a C:\a\aa könyvtárba:

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

Alapértelmezés szerint a parancsmag nem írja felül az azonos nevű meglévő fájlt. Ha a parancsmagot egy meglévő fájl felülírására szeretné kényszeríteni, adja meg a Force paramétert.

Nem helyezhet át könyvtárat, ha ez a könyvtár az aktuális hely. Amikor Move-Item a címtárat az aktuális helyen helyezi át, ez a hiba jelenik meg.

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

Fájltartalom kezelése

Fájl tartalmának lekérése

Ez a parancs lekéri a "Test.txt" fájl tartalmát, és megjeleníti őket a konzolon.

Get-Content -Path Test.txt

A fájl tartalmát egy másik parancsmagba is beszűkítheti. A következő parancs például beolvassa a Test.txt fájl tartalmát, majd bemenetként látja el őket a ConvertTo-Html parancsmaghoz:

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

A fájl tartalmát úgy is lekérheti, hogy a szolgáltató elérési útját a dollárjel ($) előtaggal előtaggal írják le. Az elérési utat kapcsos zárójelek közé kell zárni a változó elnevezési korlátozások miatt. További információ: about_Variables.

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

Tartalom hozzáadása fájlhoz

Ez a parancs hozzáfűzi a "teszttartalom" sztringet a Test.txt fájlhoz:

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

A fájl meglévő Test.txt tartalma nem törlődik.

Fájl tartalmának cseréje

Ez a parancs a fájl tartalmát Test.txt a "teszttartalom" sztringre cseréli:

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

Felülírja a .Test.txt A parancsmag Érték paraméterével New-Item tartalmat adhat hozzá egy fájlhoz a létrehozáskor.

A fájl tartalmának átcsúszása

A parancsmag alapértelmezés szerint Get-Content a sorvég karaktert használja elválasztóként, ezért sztringek gyűjteményeként kap egy fájlt, és minden sort egy sztringként használ a fájlban.

A Határoló paraméter használatával alternatív elválasztójelet adhat meg. Ha azokat a karaktereket állítja be, amelyek egy szakasz végét vagy a következő szakasz elejét jelölik, a fájlt feloszthatja logikai részekre.

Az első parancs lekéri a Employees.txt fájlt, és szakaszokra osztja, amelyek mindegyike az "Alkalmazotti rekord vége" szóval végződik, és menti a $e változóban.

A második parancs tömbjelezést használ a gyűjtemény $eelső elemének lekéréséhez. 0 indexet használ, mivel a PowerShell-tömbök nulla alapúak.

A parancsmagról Get-Content további információt a súgótémakörben talál.Get-Content

További információ a tömbökről: about_Arrays.

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

Biztonsági leírók kezelése

Fájl ACL-jének megtekintése

Ez a parancs egy System.Security.AccessControl.FileSecurity objektumot ad vissza:

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

Az objektummal kapcsolatos további információkért a parancsot a Get-Member parancsmaghoz vagy a FileSecurity osztályhoz kell átirányítani.

Fájlok és könyvtárak létrehozása

Címtár létrehozása

Ez a parancs létrehozza a logfiles könyvtárat a C meghajtón:

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

A PowerShell tartalmaz egy függvényt mkdir (alias md) is, amely a New-Item parancsmaggal hoz létre egy új könyvtárat.

Fájl létrehozása

Ez a parancs létrehozza a log2.txt fájlt a C:\logfiles könyvtárban, majd hozzáadja a "tesztnapló" sztringet a fájlhoz:

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

Fájl létrehozása tartalommal

Létrehoz egy, a C:\logfiles könyvtárban hívott log2.txt fájlt, és hozzáadja a "tesztnapló" sztringet a fájlhoz.

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

Fájlok és könyvtárak átnevezése

Fájl átnevezése

Ez a parancs átnevezi a a.txt könyvtárban lévő fájlt a C:\a következőre b.txt:

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

Címtár átnevezése

Ez a parancs átnevezi a könyvtárat a C:\a\cc következőre C:\a\dd:

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

Fájlok és könyvtárak törlése

Fájl törlése

Ez a parancs törli a fájlt az Test.txt aktuális könyvtárban:

Remove-Item -Path test.txt

Fájlok törlése helyettesítő karakterekkel

Ez a parancs törli az összes fájlt az aktuális könyvtárban, amely rendelkezik a .xml fájlnévkiterjesztéssel:

Remove-Item -Path *.xml

Program indítása társított fájl meghívásával

Fájl meghívása

A Get-Service parancsmag a helyi szolgáltatásokra vonatkozó információk lekéréséhez és az Adatok exportálása csv parancsmagba való beolvasásához, hogy az adatokat a Services.csv fájlban tárolja.

Ezután az Invoke-Item megnyitja a services.csv fájlt a bővítményhez .csv társított programban:

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

Fájlok és mappák lekérése megadott attribútumokkal

Rendszerfájlok lekérése

Ez a parancs lekéri a rendszerfájlokat az aktuális könyvtárban és annak alkönyvtáraiban.

A Fájl paraméterrel csak a fájlokat (nem könyvtárakat) és a Rendszer paramétert használja, hogy csak a "system" attribútummal rendelkező elemeket szerezze be.

A Recurse paramétert használja az aktuális könyvtár és az összes alkönyvtár elemeinek lekéréséhez.

Get-ChildItem -File -System -Recurse

Rejtett fájlok lekérése

Ez a parancs lekéri az összes fájlt, beleértve a rejtett fájlokat is az aktuális könyvtárban.

Az Attribútumok paramétert két értékkel használja, !Directory+Hiddenamelyek rejtett fájlokat kapnak, és !Directoryaz összes többi fájlt lekéri.

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

dir -att !d,!d+h a parancs megfelelője.

Tömörített és titkosított fájlok lekérése

Ez a parancs tömörített vagy titkosított fájlokat kap az aktuális könyvtárban.

Az Attribútumok paramétert két értékkel Compressed és Encrypted. Az értékek vesszővel , vannak elválasztva, amely az "OR" operátort jelöli.

Get-ChildItem -Attributes Compressed,Encrypted

Dinamikus paraméterek

A dinamikus paraméterek olyan parancsmagparaméterek, amelyeket egy PowerShell-szolgáltató ad hozzá, és csak akkor érhetők el, ha a parancsmagot a szolgáltató által engedélyezett meghajtón használják.

Kódolás kódolása <>

Megadja a fájlkódolást. Az alapértelmezett érték az ASCII.

  • ascii: Az ASCII (7 bites) karakterkészlet kódolását használja.
  • bigendianunicode: UTF-16 formátumban kódolja a big-endian bájtsorrendet.
  • bigendianutf32: UTF-32 formátumban kódolja a big-endian bájtsorrendet.
  • oem: Az MS-DOS és a konzolprogramok alapértelmezett kódolását használja.
  • unicode: UTF-16 formátumban kódolja a kis végű bájtsorrendet.
  • utf7: UTF-7 formátumban kódol.
  • utf8: UTF-8 formátumban kódol.
  • utf8BOM: UTF-8 formátumban kódol byte order mark (BOM)
  • utf8NoBOM: UTF-8 formátumban kódol byte order mark (BOM) nélkül
  • utf32: UTF-32 formátumban kódol.

Támogatott parancsmagok

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

Határoló sztring <>

Megadja a fájl olvasás közben objektumokra való felosztásához használt elválasztójelet Get-Content .

Az alapértelmezett érték \na sorvég karakter.

Szövegfájl Get-Content olvasásakor sztringobjektum-gyűjteményt ad vissza, amelyek mindegyike elválasztó karakterrel végződik.

Ha a fájlban nem létező elválasztójelet ad vissza, Get-Content a teljes fájlt egyetlen, nem tagolt objektumként adja vissza.

Ezzel a paraméterrel egy nagyobb fájlt feloszthat kisebb fájlokra, ha elválasztóként megad egy fájlelválasztót( például "Példa vége"). A határoló megmarad (nem elvetve), és az egyes fájlszakaszok utolsó elemévé válik.

Feljegyzés

Jelenleg, ha a Határoló paraméter értéke egy üres sztring, Get-Content nem ad vissza semmit. Ez egy ismert probléma. Get-Content Ha a teljes fájlt egyetlen, nem kézbesített sztringként szeretné visszaadni, adjon meg egy olyan értéket, amely nem létezik a fájlban.

Támogatott parancsmagok

  • Get-Content

Várakozási <kapcsolóparaméter>

Megvárja, amíg a tartalom hozzá lesz fűzve a fájlhoz. Ha a tartalom hozzá van fűzve, a hozzáfűzött tartalmat adja vissza. Ha a tartalom megváltozott, a teljes fájlt adja vissza.

Várakozáskor Get-Content másodpercenként egyszer ellenőrizze a fájlt, amíg meg nem szakítja azt, például a CTRL+C billentyűkombináció lenyomásával.

Támogatott parancsmagok

  • Get-Content

Attribútumok <FlagsExpression>

Lekéri a megadott attribútumokkal rendelkező fájlokat és mappákat. Ez a paraméter támogatja az összes attribútumot, és lehetővé teszi az attribútumok összetett kombinációjának megadását.

Az Attribútumok paraméter a Windows PowerShell 3.0-ban lett bevezetve.

Az Attribútumok paraméter a következő attribútumokat támogatja:

  • Archívum
  • Tömörített
  • Eszköz
  • Címtár
  • Titkosított
  • Rejtett
  • Normális
  • NotContentIndexed
  • Offline
  • ReadOnly
  • ReparsePoint
  • SparseFile
  • Rendszer
  • Ideiglenes

Ezeknek az attribútumoknak a leírásáért tekintse meg a FileAttributes enumerálást.

Az attribútumok kombinálásához használja az alábbi operátorokat.

  • ! -NEM
  • + -ÉS
  • , -VAGY

Az operátorok és attribútumaik között nem engedélyezett szóközök használata. A szóközök azonban vessző előtt engedélyezettek.

Támogatott parancsmagok

  • Get-ChildItem

Directory <SwitchParameter>

Könyvtárakat (mappákat) kap.

A Címtár paraméter a Windows PowerShell 3.0-ban lett bevezetve.

Ha csak könyvtárakat szeretne lekérni, használja a Címtár paramétert, és hagyja ki a Fájl paramétert. A könyvtárak kizárásához használja a Fájl paramétert, és hagyja ki a Címtár paramétert, vagy használja az Attribútumok paramétert.

Támogatott parancsmagok

  • Get-ChildItem

Fájlkapcsolóparaméter <>

Lekéri a fájlokat.

A Fájl paraméter a Windows PowerShell 3.0-ban lett bevezetve.

Ha csak fájlokat szeretne lekérni, használja a Fájl paramétert, és hagyja ki a Címtár paramétert. A fájlok kizárásához használja a Címtár paramétert, és hagyja ki a Fájl paramétert, vagy használja az Attribútumok paramétert.

Támogatott parancsmagok

  • Get-ChildItem

Rejtett <kapcsolóparaméter>

Csak a rejtett fájlokat és könyvtárakat (mappákat) kapja meg. Alapértelmezés szerint Get-ChildItem csak a nem rejtett elemeket kapja meg.

A Rejtett paraméter a Windows PowerShell 3.0-ban lett bevezetve.

Ha csak rejtett elemeket szeretne lekérni, használja a Rejtett paramétert, annak h vagy ah aliasait, illetve az Attribútumok paraméter Rejtett értékét. A rejtett elemek kizárásához hagyja ki a Rejtett paramétert, vagy használja az Attribútumok paramétert .

Támogatott parancsmagok

  • Get-ChildItem

ReadOnly <SwitchParameter>

Csak írásvédett fájlokat és könyvtárakat (mappákat) kap.

A ReadOnly paraméter a Windows PowerShell 3.0-ban lett bevezetve.

Ha csak írásvédett elemeket szeretne lekérni, használja a ReadOnly paramétert, annak aliasát ar vagy az Attribútumok paraméter ReadOnly értékét. A csak olvasható elemek kizárásához használja az Attribútumok paramétert.

Támogatott parancsmagok

  • Get-ChildItem

System <SwitchParameter>

Csak a rendszerfájlokat és könyvtárakat (mappákat) kapja meg.

A rendszerparaméter a Windows PowerShell 3.0-ban lett bevezetve.

Ha csak rendszerfájlokat és mappákat szeretne lekérni, használja a Rendszer paramétert, annak aliasát as vagy az Attribútumok paraméter rendszerértékét. A rendszerfájlok és mappák kizárásához használja az Attribútumok paramétert.

Támogatott parancsmagok

  • Get-ChildItem

NewerThan <DateTime>

Akkor adja $True vissza, ha egy LastWriteTime fájl értéke nagyobb a megadott dátumnál. Ellenkező esetben a visszaadott $Falseérték.

Adjon meg egy DateTime-objektumot, például a Get-Date parancsmag által visszaadott objektumot, vagy egy olyan sztringet, amely konvertálható DateTime-objektummá, például"August 10, 2011 2:00 PM".

Támogatott parancsmagok

OlderThan <DateTime>

Akkor adja $True vissza, ha egy LastWriteTime fájl értéke kisebb a megadott dátumnál. Ellenkező esetben a visszaadott $Falseérték.

Adjon meg egy DateTime-objektumot, például a Get-Date parancsmag által visszaadott objektumot, vagy egy olyan sztringet, amely konvertálható DateTime-objektummá, például "August 10, 2011 2:00 PM".

Támogatott parancsmagok

  • Test-Path

Stream sztring <>

Alternatív adatfolyamok kezelése. Adja meg a stream nevét. A helyettesítő karakterek csak Get-Item a fájlrendszer-meghajtókra és Remove-Item parancsokra engedélyezettek.

Támogatott parancsmagok

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

Nyers <kapcsolóparaméter>

Figyelmen kívül hagyja az újsoros karaktereket. A tartalmat egyetlen elemként adja vissza.

Támogatott parancsmagok

  • Get-Content

ItemType sztring <>

Ez a paraméter lehetővé teszi a létrehozandó elem típusának megadását New-Item.

A paraméter elérhető értékei a használt aktuális szolgáltatótól függenek.

FileSystem Meghajtón a következő értékek engedélyezettek:

  • Fájl
  • Címtár
  • SymbolicLink
  • Csomópont
  • HardLink

Támogatott parancsmagok

  • New-Item

A folyamat használata

A szolgáltatói parancsmagok elfogadják a folyamatbemenetet. A folyamat használatával egyszerűsítheti a feladatokat, ha szolgáltatói adatokat küld egy parancsmagból egy másik szolgáltatói parancsmagnak. A folyamat szolgáltatói parancsmagokkal való használatával kapcsolatos további információkért tekintse meg a cikkben található parancsmag-hivatkozásokat.

Segítség kérése

A Windows PowerShell 3.0-tól kezdve testre szabott súgótémaköröket kaphat a szolgáltatói parancsmagokhoz, amelyek ismertetik, hogyan viselkednek ezek a parancsmagok a fájlrendszer-meghajtókon.

A fájlrendszer-meghajtóhoz testre szabott súgótémakörök lekéréséhez futtasson egy Get-Help parancsot egy fájlrendszer-meghajtón, vagy használja a fájlrendszer-meghajtó elérési út paraméterét Get-Help .

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

Lásd még