Bagikan melalui


about_FileSystem_Provider

Nama penyedia

FileSystem

Drives

C:, , D:... Temp:

Capabilities

Filter, ShouldProcess

Deskripsi singkat

Menyediakan akses ke file dan direktori.

Deskripsi terperinci

Penyedia FileSystem PowerShell memungkinkan Anda mendapatkan, menambahkan, mengubah, mengosongkan, 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 dibahas dalam artikel ini.

Jenis yang diekspos oleh penyedia ini

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

Sistem Tipe Diperluas PowerShell menambahkan properti tambahan ke jenis objek ini untuk memberikan informasi tambahan. Beberapa informasi khusus untuk platform. Misalnya, kemungkinan nilai properti LinkType bergantung pada platform dan sistem file yang digunakan. Sistem file Linux dan macOS mendukung HardLink dan SymLink. Windows NTFS mendukung HardLink, SymLink, Junction, dan beberapa nilai lain untuk LinkType.

Saat Anda menggunakan atau untuk informasi tentang item tertaut, properti Mode berisi untuk menunjukkan bahwa item tersebut adalah tautan. Properti LinkType berisi jenis tautan.

AppExecLink tautan dibuat saat Anda mengunduh dan memasang aplikasi dari Microsoft Store. Untuk tautan AppExecLink, Windows tidak menyediakan nilai untuk properti LinkType atau 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 ->

Penyedia FileSystem mengekspos penyimpanan datanya dengan memetakan drive logis apa pun di komputer sebagai drive PowerShell. Untuk bekerja dengan drive FileSystem, Anda bisa mengubah lokasi ke drive dengan menggunakan nama drive yang 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 .

Nota

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

Mendapatkan file dan direktori

Cmdlet Get-ChildItem 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

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

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 file a.txt dari direktori C:\a ke direktori C:\a\bb.

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

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

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

Untuk informasi selengkapnya, lihat Copy-Item.

Memindahkan file dan direktori

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

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

Secara bawaan, cmdlet tidak menimpa file yang sudah ada dengan nama yang sama. Untuk memaksa cmdlet menimpa file yang ada, tentukan parameter Force.

Anda tidak dapat memindahkan direktori ketika direktori tersebut adalah lokasi saat ini. Saat 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

Mengambil isi dari sebuah 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 file lalu memasoknya 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 batasan dalam 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 file Test.txt:

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

Konten yang ada dalam file Test.txt tidak dihapus.

Mengganti konten file

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

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

Ini mengganti konten Test.txt. Anda dapat menggunakan parameter Nilai dari cmdlet New-Item untuk menambahkan konten ke file saat Anda membuatnya.

Mengulang konten file

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

Anda dapat menggunakan parameter pemisah 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 file Employees.txt dan membaginya menjadi beberapa bagian, yang masing-masing berakhir dengan kata "Akhir Catatan Karyawan" dan menyimpannya dalam variabel $e.

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

Untuk informasi selengkapnya tentang cmdlet Get-Content, 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, gunakan pipe perintah ke cmdlet Get-Member atau lihat Kelas FileSecurity.

Membuat file dan direktori

Membuat direktori

Perintah ini membuat direktori logfiles pada drive C:

New-Item -Path C:\ -Name logfiles -Type Directory

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

Membuat file

Perintah ini membuat file log2.txt di direktori C:\logfiles lalu 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 direktori C:\logfiles 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 file a.txt di direktori C:\a menjadi b.txt:

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

Mengganti nama direktori

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

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

Menghapus file dan direktori

Menghapus file

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

Remove-Item -Path test.txt

Menghapus file menggunakan karakter pengganti

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

Remove-Item -Path *.xml

Memulai program dengan memanggil file terkait

Menjalankan file

Cmdlet Get-Service untuk mendapatkan informasi tentang layanan lokal dan menyalurkan informasi ke cmdlet Export-Csv untuk menyimpan informasi ke dalam file Services.csv.

Kemudian Invoke-Item membuka file services.csv dalam program yang terkait dengan ekstensi .csv:

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

Mendapatkan file dan folder dengan atribut tertentu

Mengambil file sistem

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

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

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

Get-ChildItem -File -System -Recurse

Dapatkan file Tersembunyi

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

Ini menggunakan parameter Atribut dengan dua nilai, !Directory+Hidden, untuk mendapatkan file tersembunyi, dan !Directory, untuk 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 parameter Atribut dengan dua nilai, dan . 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 ketika cmdlet digunakan dalam drive yang diaktifkan penyedia.

<Pengodean> Pengodean

Menentukan pengodean file. Defaultnya adalah ASCII.

  • ascii: Menggunakan pengodean untuk set karakter ASCII (7-bit).
  • bigendianunicode: Mengenkode dalam format UTF-16 menggunakan urutan byte big-endian.
  • bigendianutf32: Mengodekan dalam format UTF-32 menggunakan urutan byte big-endian.
  • oem: Menggunakan pengkodean default untuk program MS-DOS dan program konsol.
  • unicode: Mengkodekan 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 Byte Order Mark (BOM)
  • utf8NoBOM: Mengodekan dalam format UTF-8 tanpa Byte Order Mark (BOM)
  • utf32: Mengodekan dalam format UTF-32.

Cmdlet yang didukung

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

Pemisah <String>

Menentukan pemisah yang Get-Content gunakan untuk membagi file menjadi objek saat dibaca.

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.

Nota

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

Cmdlet yang didukung

  • Get-Content

Tunggu <SwitchParameter>

Menunggu konten ditambahkan ke file. Jika konten ditambahkan, maka konten yang ditambahkan tersebut akan dikembalikan. Jika konten telah berubah, sistem akan mengembalikan seluruh file.

Saat menunggu, Get-Content memeriksa file setiap detik sampai Anda menginterupsinya, seperti dengan menekan CTRL+C.

Cmdlet yang didukung

  • Get-Content

Atribut <FlagsExpression>

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

Parameter Atribut diperkenalkan di Windows PowerShell 3.0.

Parameter Atribut mendukung atribut berikut:

  • Arsip
  • Terkompresi
  • Perangkat
  • Direktori
  • Terenkripsi
  • 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

  • Get-ChildItem

Direktori <SwitchParameter>

Memperoleh direktori (folder).

Parameter Direktori diperkenalkan di Windows PowerShell 3.0.

Untuk mendapatkan hanya direktori, gunakan parameter Direktori dan hilangkan parameter File . Untuk mengecualikan direktori, gunakan parameter File dan hilangkan parameter Direktori , atau gunakan parameter Atribut .

Cmdlet yang didukung

  • Get-ChildItem

SwitchParameter File <>

Mendapatkan file.

Parameter File diperkenalkan di Windows PowerShell 3.0.

Untuk mendapatkan hanya file, gunakan parameter File dan hilangkan parameter Direktori . Untuk mengecualikan file, gunakan parameter Direktori dan hilangkan parameter File , atau gunakan parameter Atribut .

Cmdlet yang didukung

  • Get-ChildItem

Tersembunyi <SwitchParameter>

Menampilkan hanya file dan folder tersembunyi. Secara default, Get-ChildItem hanya mendapatkan item yang tidak tersembunyi.

Parameter Tersembunyi diperkenalkan di Windows PowerShell 3.0.

Untuk mendapatkan hanya item tersembunyi, gunakan parameter Tersembunyi, alias h atau ah, atau nilai Tersembunyi dari parameter Atribut. Untuk mengecualikan item tersembunyi, hilangkan parameter Tersembunyi atau gunakan parameter Atribut.

Cmdlet yang didukung

  • Get-ChildItem

ReadOnly <SwitchParameter>

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

Parameter ReadOnly diperkenalkan di Windows PowerShell 3.0.

Untuk mendapatkan item yang hanya dapat dibaca, gunakan parameter ReadOnly, aliasnya ar, atau nilai ReadOnly dari parameter Atribut. Untuk mengecualikan item baca-saja, gunakan parameter Atribut.

Cmdlet yang didukung

  • Get-ChildItem

Sistem <SwitchParameter>

Hanya mendapatkan file sistem dan direktori (folder).

Parameter Sistem diperkenalkan di Windows PowerShell 3.0.

Untuk mendapatkan hanya file dan folder sistem, gunakan parameter Sistem, alias as, atau nilai Sistem dari parameter Atribut. Untuk mengecualikan file dan folder sistem, gunakan parameter Atribut .

Cmdlet yang didukung

  • Get-ChildItem

< lebih baru dari >DateTime

Mengembalikan $true ketika nilai LastWriteTime file lebih besar dari tanggal yang ditentukan. Jika tidak, ia mengembalikan $false.

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

Cmdlet yang didukung

LebihTuaDari <TanggalWaktu>

Mengembalikan $true saat nilai LastWriteTime file kurang dari tanggal yang ditentukan. Jika tidak, ia mengembalikan $false.

Masukkan objek DateTime , seperti yang dikembalikan cmdlet , atau string yang dapat dikonversi ke objek DateTime , seperti .

Cmdlet yang didukung

  • Test-Path

String Aliran <>

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

Cmdlet yang didukung

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

ParameterSakelar <mentah>

Mengabaikan karakter baris baru. Mengembalikan konten sebagai item tunggal.

Cmdlet yang didukung

  • Get-Content

< String >ItemType

Parameter ini memungkinkan Anda menentukan jenis item yang akan dibuat dengan New-Item.

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

Dalam drive FileSystem, nilai berikut diizinkan:

  • Arsip
  • Direktori
  • SymbolicLink
  • Persimpangan
  • HardLink

Cmdlet yang didukung

  • New-Item

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

Dimulai di 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 parameter Path dari Get-Help untuk menentukan drive sistem file.

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

Lihat juga