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 $env:TEMP
dengan . 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.
- Get-Location
- Set-Location
- Dapatkan Item
- Get-ChildItem
- Invoke-Item
- Pindahkan Item
- Item Baru
- Hapus Item
- Get-ItemProperty
- Set-ItemProperty
- Hapus Item
- Clear-ItemProperty
- Hapus Item
- Remove-ItemProperty
- Get-Acl
- Set-Acl
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature
- Add-Content
- Hapus Isi
- Get-Content
- Set-Content
Jenis yang diekspos oleh penyedia ini
File adalah instans kelas System.IO.FileInfo . Direktori adalah instans kelas System.IO.DirectoryInfo .
Sistem Tipe Diperluas PowerShell menambahkan properti tambahan ke jenis objek ini untuk memberikan informasi tambahan. Beberapa informasi spesifik platform. Misalnya, nilai yang mungkin dari properti LinkType bergantung pada platform dan sistem file yang digunakan. Dukungan HardLink
sistem file Linux dan macOS dan SymLink
. Windows NTFS mendukung HardLink
, , Junction
SymLink
, dan beberapa nilai lain untuk LinkType.
Saat Anda menggunakan Get-Item
atau Get-ChildItem
untuk informasi tentang item tertaut, properti Mode berisi l
untuk menunjukkan bahwa item tersebut adalah tautan. Properti LinkType berisi jenis tautan.
AppExecLink
tautan dibuat saat Anda menginstal aplikasi dari Microsoft Store. Untuk AppExecLink
tautan, 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 ->
Menavigasi drive FileSystem
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
adalah 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-ChildItem
dengan .
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 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
Secara default, cmdlet tidak 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. 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
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 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 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"
Konten 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 New-Item
Nilai cmdlet untuk menambahkan konten ke file saat Anda membuatnya.
Mengulang 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 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 Employees.txt
file dan membaginya menjadi beberapa bagian, yang masing-masing berakhir dengan kata "Akhir Catatan 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.
Membuat file dan direktori
Membuat 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 New-Item
cmdlet untuk membuat direktori baru.
Membuat file
Perintah ini membuat log2.txt
file di C:\logfiles
direktori 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 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 C:\a
direktori menjadi b.txt
:
Rename-Item -Path c:\a\a.txt -NewName b.txt
Mengganti nama direktori
Perintah ini mengganti nama direktori menjadi C:\a\cc
C:\a\dd
:
Rename-Item -Path c:\a\cc -NewName dd
Menghapus file dan direktori
Hapus file
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
Cmdlet Get-Service untuk mendapatkan informasi tentang layanan lokal dan menyalurkan informasi ke cmdlet Export-Csv untuk menyimpan informasi dalam Services.csv
file.
Kemudian Invoke-Item 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 parameter File untuk hanya mendapatkan file (bukan direktori) dan parameter Sistem untuk mendapatkan hanya item dengan atribut "sistem".
Ini menggunakan parameter Recurse untuk mendapatkan 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
, 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 parameter Atribut 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 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
: Mengodekan dalam format UTF-16 menggunakan urutan byte big-endian.bigendianutf32
: Mengodekan dalam format UTF-32 menggunakan urutan byte big-endian.oem
: Menggunakan pengodean default untuk MS-DOS dan program konsol.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 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
String Pembatas <>
Menentukan pemisah yang Get-Content
menggunakan 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.
Catatan
Saat ini, ketika nilai parameter Pembatas 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
Get-Content
Sabar SwitchParameter <>
Menunggu konten ditambahkan ke file. Jika konten ditambahkan, konten tersebut mengembalikan konten yang ditambahkan. Jika konten telah berubah, konten akan mengembalikan seluruh file.
Saat menunggu, Get-Content
periksa file sekali setiap detik hingga Anda mengganggunya, 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:
- Mengarsipkan
- Dikompresi
- Perangkat
- Direktori
- Dienkripsi
- Tersembunyi
- Normal
- NotContentIndexed
- Luring
- ReadOnly
- ReparsePoint
- SparseFile
- Log
- 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
SwitchParameter Direktori <>
Mendapatkan 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
SwitchParameter Tersembunyi <>
Hanya mendapatkan file dan direktori tersembunyi (folder). 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, h
alias, atau ah
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 baca-saja (folder).
Parameter ReadOnly diperkenalkan di Windows PowerShell 3.0.
Untuk mendapatkan hanya item baca-saja, gunakan parameter ReadOnly , aliasnya ar
, atau nilai ReadOnly dari parameter Atribut . Untuk mengecualikan item baca-saja, gunakan parameter Atribut .
Cmdlet yang didukung
Get-ChildItem
SwitchParameter Sistem <>
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 , aliasnya as
, atau nilai Sistem dari parameter Atribut . Untuk mengecualikan file dan folder sistem, gunakan parameter Atribut .
Cmdlet yang didukung
Get-ChildItem
DateTime NewerThan <>
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 ke objek DateTime, seperti "August 10, 2011 2:00 PM"
.
Cmdlet yang didukung
DateTime OlderThan <>
Mengembalikan $True
ketika LastWriteTime
nilai file kurang dari tanggal yang ditentukan. Jika tidak, ia kembali $False
.
Masukkan objek DateTime, seperti objek yang Get-Date
dikembalikan cmdlet, atau string yang dapat dikonversi ke objek DateTime, seperti "August 10, 2011 2:00 PM"
.
Cmdlet yang didukung
Test-Path
String Aliran <>
Mengelola aliran data alternatif. Masukkan nama aliran. Kartubebas hanya diizinkan untuk Get-Item
dan Remove-Item
perintah dalam drive sistem file.
Cmdlet yang didukung
Add-Content
Clear-Content
Get-Item
Get-Content
Remove-Item
Set-Content
SwitchParameter 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.
FileSystem
Dalam drive, nilai berikut diizinkan:
- File
- 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 Get-Help
Jalur untuk menentukan drive sistem file.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path c: