about_FileSystem_Provider

Nama Penyedia

FileSystem

Drive

C:, D:, Temp: ...

Kemampuan

Filter, ShouldProcess

Deskripsi singkat

Menyediakan akses ke file dan direktori.

Deskripsi terperinci

Penyedia PowerShell FileSystem memungkinkan Anda mendapatkan, menambahkan, mengubah, menghapus, dan menghapus file dan direktori di PowerShell.

Drive FileSystem adalah namespace hierarkis yang berisi direktori dan file di komputer Anda. Drive FileSystem dapat berupa drive logis atau fisik, direktori, atau berbagi jaringan yang dipetakan.

Dimulai di PowerShell Versi 7.0, drive yang disebut TEMP: dipetakan ke jalur direktori sementara pengguna. PowerShell menggunakan metode .NET GetTempPath() untuk menentukan lokasi folder sementara. Di Windows, lokasinya sama dengan $env:TEMP. Pada sistem non-Windows, lokasinya sama dengan $env:TMPDIR atau /tmp jika variabel lingkungan tidak ditentukan.

Penyedia FileSystem mendukung cmdlet berikut, yang tercakup dalam artikel ini.

Jenis yang diekspos oleh penyedia ini

File adalah instans kelas System.IO.FileInfo . Direktori adalah instans kelas System.IO.DirectoryInfo .

Penyedia FileSystem mengekspos penyimpanan datanya dengan memetakan drive logis apa pun di komputer sebagai drive PowerShell. Untuk bekerja dengan drive FileSystem , Anda dapat mengubah lokasi Anda menjadi drive menggunakan nama drive diikuti dengan titik dua (:).

Set-Location C:

Anda juga dapat bekerja dengan penyedia FileSystem dari drive PowerShell lainnya. Untuk mereferensikan file atau direktori dari lokasi lain, gunakan nama drive (C:, D:, ...) di jalur.

Catatan

PowerShell menggunakan alias untuk memungkinkan Anda cara yang familier untuk bekerja dengan jalur penyedia. Perintah seperti dir dan ls sekarang menjadi alias untuk Get-ChildItem, cd adalah alias untuk Set-Location. dan pwd merupakan alias untuk Get-Location.

Mendapatkan file dan direktori

Get-ChildItem Cmdlet mengembalikan semua file dan direktori di lokasi saat ini. Anda dapat menentukan jalur yang berbeda untuk mencari dan menggunakan parameter bawaan untuk memfilter dan mengontrol kedalaman rekursi.

Get-ChildItem

Untuk membaca selengkapnya tentang penggunaan cmdlet, lihat Get-ChildItem.

Menyalin file dan direktori

Copy-Item Cmdlet menyalin file dan direktori ke lokasi yang Anda tentukan. Parameter tersedia untuk memfilter dan berulang, mirip Get-ChildItemdengan .

Perintah berikut menyalin semua file dan direktori di bawah jalur "C:\temp" ke folder "C:\Windows\Temp".

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

Copy-Item menimpa file di direktori tujuan tanpa meminta konfirmasi.

Perintah ini menyalin a.txt file dari C:\a direktori ke C:\a\bb direktori.

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

Menyalin semua direktori dan file dalam C:\a direktori ke C:\c direktori. Jika salah satu direktori yang akan disalin sudah ada di direktori tujuan, perintah akan gagal kecuali Anda menentukan parameter Paksa.

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

Untuk informasi selengkapnya, lihat Salin-Item.

Memindahkan file dan direktori

Perintah ini memindahkan c.txt file dalam C:\a direktori ke C:\a\aa direktori:

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

Perintah tidak akan secara otomatis menimpa file yang ada yang memiliki nama yang sama. Untuk memaksa cmdlet menimpa file yang ada, tentukan parameter Paksa.

Anda tidak dapat memindahkan direktori ketika direktori tersebut adalah lokasi saat ini. Ketika Anda menggunakan Move-Item untuk memindahkan direktori di lokasi saat ini, Anda akan melihat kesalahan ini.

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

Mengelola konten file

Mendapatkan konten file

Perintah ini mendapatkan konten file "Test.txt" dan menampilkannya di konsol.

Get-Content -Path Test.txt

Anda dapat menyalurkan konten file ke cmdlet lain. Misalnya, perintah berikut membaca konten Test.txt file lalu menyediakannya sebagai input ke cmdlet ConvertTo-Html :

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

Anda juga dapat mengambil konten file dengan mengawali jalur penyedianya dengan tanda dolar ($). Jalur harus diapit kurung kurawal karena pembatasan penamaan variabel. Untuk informasi selengkapnya, lihat about_Variables.

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

Menambahkan konten ke file

Perintah ini menambahkan string "uji konten" ke Test.txt file:

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

Isi yang ada dalam Test.txt file tidak dihapus.

Mengganti konten file

Perintah ini menggantikan konten Test.txt file dengan string "uji konten":

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

Ini menimpa konten Test.txt. Anda dapat menggunakan parameter Nilai cmdlet Item Baru untuk menambahkan konten ke file saat Anda membuatnya.

Mengulangi konten file

Secara default, Get-Content cmdlet menggunakan karakter akhir baris sebagai pemisahnya, sehingga mendapatkan file sebagai kumpulan string, dengan setiap baris sebagai satu string dalam file.

Anda dapat menggunakan -Delimiter parameter untuk menentukan pemisah alternatif. Jika Anda mengaturnya ke karakter yang menunjukkan akhir bagian atau awal bagian berikutnya, Anda dapat membagi file menjadi bagian logis.

Perintah pertama mendapatkan Employees.txt file dan membaginya menjadi beberapa bagian, yang masing-masing berakhir dengan kata "Akhir Rekaman Karyawan" dan menyimpannya dalam $e variabel.

Perintah kedua menggunakan notasi array untuk mendapatkan item pertama dalam koleksi di $e. Ini menggunakan indeks 0, karena array PowerShell berbasis nol.

Untuk informasi selengkapnya tentang Get-Content cmdlet, lihat topik bantuan untuk Get-Content.

Untuk informasi selengkapnya tentang array, lihat about_Arrays.

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

Mengelola deskriptor keamanan

Menampilkan ACL untuk file

Perintah ini mengembalikan objek System.Security.AccessControl.FileSecurity :

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

Untuk informasi selengkapnya tentang objek ini, pipa perintah ke cmdlet Get-Member . Atau, lihat Kelas Keamanan File .

Mengubah ACL untuk file

Membuat dan mengatur ACL untuk file

Membuat file dan direktori

Buat direktori

Perintah ini membuat logfiles direktori pada C drive:

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

PowerShell juga menyertakan mkdir fungsi (alias md) yang menggunakan cmdlet New-Item untuk membuat direktori baru.

Membuat file

Perintah ini membuat log2.txt file di C:\logfiles direktori dan kemudian menambahkan string "log pengujian" ke file:

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

Membuat file dengan konten

Membuat file yang disebut log2.txt di C:\logfiles direktori dan menambahkan string "log pengujian" ke file.

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

Mengganti nama file dan direktori

Mengganti nama file

Perintah ini mengganti nama a.txt file di direktori menjadi C:\ab.txt:

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

Mengganti nama direktori

Perintah ini mengganti nama direktori menjadi C:\a\ccC:\a\dd:

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

Menghapus file dan direktori

Hapus berkas

Perintah ini menghapus Test.txt file di direktori saat ini:

Remove-Item -Path test.txt

Menghapus file menggunakan kartubebas

Perintah ini menghapus semua file di direktori saat ini yang memiliki .xml ekstensi nama file:

Remove-Item -Path *.xml

Memulai program dengan memanggil file terkait

Memanggil file

Perintah pertama menggunakan cmdlet Get-Service untuk mendapatkan informasi tentang layanan lokal.

Ini menyalurkan informasi ke cmdlet Export-Csv dan kemudian menyimpan informasi tersebut Services.csv dalam file.

Perintah kedua menggunakan Invoke-Item untuk membuka services.csv file dalam program yang terkait dengan .csv ekstensi:

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

Mendapatkan file dan folder dengan atribut tertentu

Mendapatkan file Sistem

Perintah ini mendapatkan file sistem di direktori saat ini dan subdirektorinya.

Ini menggunakan -File parameter untuk hanya mendapatkan file (bukan direktori) dan -System parameter untuk hanya mendapatkan item dengan atribut "sistem".

Ini menggunakan -Recurse parameter untuk mendapatkan item di direktori saat ini dan semua subdirektori.

Get-ChildItem -File -System -Recurse

Mendapatkan file Tersembunyi

Perintah ini mendapatkan semua file, termasuk file tersembunyi, di direktori saat ini.

Ini menggunakan parameter Atribut dengan dua nilai, !Directory+Hidden, yang mendapatkan file tersembunyi, dan !Directory, yang mendapatkan semua file lainnya.

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

dir -att !d,!d+h setara dengan perintah ini.

Mendapatkan file Terkompresi dan Terenkripsi

Perintah ini mendapatkan file di direktori saat ini yang dikompresi atau dienkripsi.

Ini menggunakan -Attributes parameter dengan dua nilai, Compressed dan Encrypted. Nilai dipisahkan oleh koma , yang mewakili operator "OR".

Get-ChildItem -Attributes Compressed,Encrypted

Parameter dinamis

Parameter dinamis adalah parameter cmdlet yang ditambahkan oleh penyedia PowerShell dan hanya tersedia saat cmdlet digunakan di drive yang diaktifkan penyedia.

Pengodean <Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding>

Menentukan pengodean file. Defaultnya adalah ASCII.

  • ASCII: Menggunakan pengodean untuk set karakter ASCII (7-bit).
  • BigEndianUnicode: Mengodekan dalam format UTF-16 menggunakan urutan byte big-endian.
  • String: Menggunakan jenis pengodean untuk string.
  • Unicode: Mengodekan dalam format UTF-16 menggunakan urutan byte little-endian.
  • UTF7: Mengodekan dalam format UTF-7.
  • UTF8: Mengodekan dalam format UTF-8.
  • UTF8BOM: Mengodekan dalam format UTF-8 dengan Tanda Urutan Byte (BOM)
  • UF8NOBOM: Mengodekan dalam format UTF-8 tanpa Tanda Urutan Byte (BOM)
  • UTF32: Mengodekan dalam format UTF-32.
  • Default: Mengodekan di halaman kode yang diinstal secara default.
  • OEM: Menggunakan pengodean default untuk MS-DOS dan program konsol.
  • Tidak diketahui: Jenis pengodean tidak diketahui atau tidak valid. Data dapat diperlakukan sebagai biner.

Cmdlet yang didukung

Pemisah <System.String>

Menentukan pemisah yang digunakan Get-Content untuk membagi file menjadi objek saat membaca.

Defaultnya adalah \n, karakter akhir baris.

Saat membaca file teks, Get-Content mengembalikan kumpulan objek string, yang masing-masing diakhir dengan karakter pemisah.

Memasukkan pemisah yang tidak ada dalam file, Get-Content mengembalikan seluruh file sebagai objek tunggal yang tidak dibatasi.

Anda dapat menggunakan parameter ini untuk membagi file besar menjadi file yang lebih kecil dengan menentukan pemisah file, seperti "Akhir Contoh", sebagai pemisah. Pemisah dipertahankan (tidak dibuang) dan menjadi item terakhir di setiap bagian file.

Catatan

Saat ini, ketika nilai -Delimiter parameter adalah string kosong, Get-Content tidak mengembalikan apa pun. Ini adalah masalah yang sudah diketahui. Untuk memaksa Get-Content mengembalikan seluruh file sebagai string tunggal yang tidak dibatasi, masukkan nilai yang tidak ada dalam file.

Cmdlet yang didukung

Tunggu <System.Management.Automation.SwitchParameter>

Menunggu konten ditambahkan ke file. Jika konten ditambahkan, konten akan mengembalikan konten yang ditambahkan. Jika konten telah berubah, konten akan mengembalikan seluruh file.

Saat menunggu, Get-Content memeriksa file sekali setiap detik hingga Anda mengganggunya, seperti dengan menekan CTRL+C.

Cmdlet yang didukung

<Atribut FlagsExpression>

Mendapatkan file dan folder dengan atribut yang ditentukan. Parameter ini mendukung semua atribut dan memungkinkan Anda menentukan kombinasi atribut yang kompleks.

Parameter -Attributes diperkenalkan dalam Windows PowerShell 3.0.

Parameter -Attributes mendukung atribut berikut:

  • Mengarsipkan
  • Dikompresi
  • Perangkat
  • Direktori
  • Dienkripsi
  • Tersembunyi
  • Normal
  • NotContentIndexed
  • Offline
  • ReadOnly
  • ReparsePoint
  • SparseFile
  • Sistem
  • Sementara

Untuk deskripsi atribut ini, lihat enumerasi FileAttributes .

Gunakan operator berikut untuk menggabungkan atribut.

  • ! - TIDAK
  • + - DAN
  • , - ATAU

Tidak ada spasi yang diizinkan antara operator dan atributnya. Namun, spasi diizinkan sebelum koma.

Cmdlet yang didukung

System.Management.Automation.SwitchParameter Direktori <>

Mendapatkan direktori (folder).

Parameter -Directory diperkenalkan di Windows PowerShell 3.0.

Untuk hanya mendapatkan direktori, gunakan -Directory parameter dan hilangkan -File parameter . Untuk mengecualikan direktori, gunakan -File parameter dan hilangkan -Directory parameter, atau gunakan -Attributes parameter .

Cmdlet yang didukung

File <System.Management.Automation.SwitchParameter>

Mendapatkan file.

Parameter -File diperkenalkan di Windows PowerShell 3.0.

Untuk mendapatkan hanya file, gunakan -File parameter dan hilangkan -Directory parameter . Untuk mengecualikan file, gunakan -Directory parameter dan hilangkan -File parameter , atau gunakan -Attributes parameter .

Cmdlet yang didukung

System.Management.Automation.SwitchParameter Tersembunyi <>

Hanya mendapatkan file dan direktori tersembunyi (folder). Secara default, Get-ChildItem hanya mendapatkan item yang tidak tersembunyi.

Parameter -Hidden diperkenalkan di Windows PowerShell 3.0.

Untuk mendapatkan hanya item tersembunyi, gunakan -Hidden parameter, h alias, ah atau nilai Tersembunyi parameter -Attributes . Untuk mengecualikan item tersembunyi, hilangkan -Hidden parameter atau gunakan -Attributes parameter .

Cmdlet yang didukung

ReadOnly <System.Management.Automation.SwitchParameter>

Hanya mendapatkan file dan direktori baca-saja (folder).

Parameter -ReadOnly diperkenalkan di Windows PowerShell 3.0.

Untuk mendapatkan hanya item baca-saja, gunakan -ReadOnly parameter, aliasnya ar , atau nilai ReadOnly parameter -Attributes . Untuk mengecualikan -Attributes item baca-saja, gunakan parameter .

Cmdlet yang didukung

System.Management.Automation.SwitchParameter <>

Hanya mendapatkan file dan direktori sistem (folder).

Parameter -System diperkenalkan di Windows PowerShell 3.0.

Untuk hanya mendapatkan file dan folder sistem, gunakan -System parameter, aliasnya as , atau nilai Sistem parameter -Attributes . Untuk mengecualikan file dan folder sistem, gunakan -Attributes parameter .

Cmdlet yang didukung

NewerThan <System.DateTime>

Mengembalikan $True ketika LastWriteTime nilai file lebih besar dari tanggal yang ditentukan. Jika tidak, ia kembali $False.

Masukkan objek DateTime , seperti yang dikembalikan cmdlet Get-Date , atau string yang dapat dikonversi menjadi objek DateTime , seperti "August 10, 2011 2:00 PM".

Cmdlet yang didukung

OlderThan <System.DateTime>

Mengembalikan $True ketika LastWriteTime nilai file kurang dari tanggal yang ditentukan. Jika tidak, ia kembali $False.

Masukkan objek DateTime , seperti yang dikembalikan cmdlet Get-Date , atau string yang dapat dikonversi menjadi objek DateTime , seperti "August 10, 2011 2:00 PM".

Cmdlet yang didukung

Stream <System.String>

Mengelola aliran data alternatif. Masukkan nama aliran. Kartubebas hanya diizinkan dalam perintah Get-Item for dan Remove-Item dalam drive sistem file.

Cmdlet yang didukung

SwitchParameter Mentah <>

Mengabaikan karakter baris baru. Mengembalikan konten sebagai item tunggal.

Cmdlet yang didukung

String ItemType <>

Parameter ini memungkinkan Anda untuk menentukan tye item untuk dibuat dengan New-Item

Nilai yang tersedia dari parameter ini bergantung pada penyedia saat ini yang Anda gunakan.

FileSystem Di drive, nilai berikut diizinkan:

  • File
  • Direktori
  • SymbolicLink
  • Persimpangan
  • HardLink

Cmdlet yang didukung

Menggunakan alur

Cmdlet penyedia menerima input alur. Anda dapat menggunakan alur untuk menyederhanakan tugas dengan mengirim data penyedia dari satu cmdlet ke cmdlet penyedia lain. Untuk membaca selengkapnya tentang cara menggunakan alur dengan cmdlet penyedia, lihat referensi cmdlet yang disediakan di seluruh artikel ini.

Mendapatkan bantuan

Mulai dari Windows PowerShell 3.0, Anda bisa mendapatkan topik bantuan yang disesuaikan untuk cmdlet penyedia yang menjelaskan bagaimana cmdlet tersebut bereaksi dalam drive sistem file.

Untuk mendapatkan topik bantuan yang disesuaikan untuk drive sistem file, jalankan perintah Get-Help di drive sistem file atau gunakan -Path parameter Get-Help untuk menentukan drive sistem file.

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

Lihat juga