about_FileSystem_Provider
Sağlayıcı adı
FileSystem
Sürücüler
C:
, D:
, Temp:
...
Özellikler
Filter, ShouldProcess
Kısa açıklama
Dosyalara ve dizinlere erişim sağlar.
Ayrıntılı açıklama
PowerShell FileSystem sağlayıcısı, PowerShell'de dosya ve dizinleri almanıza, eklemenize, değiştirmenize, temizlemenize ve silmenize olanak tanır.
FileSystem sürücüleri, bilgisayarınızdaki dizinleri ve dosyaları içeren hiyerarşik bir ad alanıdır. FileSystem sürücüsü mantıksal veya fiziksel bir sürücü, dizin veya eşlenmiş ağ paylaşımı olabilir.
PowerShell Sürüm 7.0'da başlayarak adlı TEMP:
bir sürücü kullanıcının geçici dizin yoluna eşlenir. PowerShell, geçici klasörün konumunu belirlemek için .NET GetTempPath() yöntemini kullanır. Windows'ta konum ile aynıdır $env:TEMP
. Windows dışı sistemlerde konum, ortam değişkeni tanımlanmamışsa veya /tmp
ile aynıdır$env:TMPDIR
.
FileSystem sağlayıcısı, bu makalede ele alınan aşağıdaki cmdlet'leri destekler.
- Get-Location
- Konum Ayarla
- Öğe Al
- Get-ChildItem
- ÖğeYi Çağır
- ÖğeYi Taşı
- Yeni Öğe
- Öğeyi Kaldır
- Get-ItemProperty
- Set-ItemProperty
- Öğeyi Temizle
- Clear-ItemProperty
- Öğeyi Kaldır
- Remove-ItemProperty
- Get-Acl
- Set-Acl
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature
- İçerik Ekle
- İçeriği Temizle
- İçerik Al
- İçeriği Ayarla
Bu sağlayıcı tarafından kullanıma sunulan türler
Dosyalar System.IO.FileInfo sınıfının örnekleridir. Dizinler System.IO.DirectoryInfo sınıfının örnekleridir.
PowerShell Genişletilmiş Tür Sistemi, ek bilgi sağlamak için bu nesne türlerine ek özellikler ekler. Bazı bilgiler platforma özgüdür. Örneğin, LinkType özelliğinin olası değerleri kullanılan platforma ve dosya sistemine bağlıdır. Linux ve macOS dosya sistemleri ve SymLink
desteğiHardLink
. Windows NTFS, LinkType için , SymLink
, Junction
ve diğer birçok değeri desteklerHardLink
.
Bağlı bir öğe hakkında bilgi edinmek için veya Get-ChildItem
kullandığınızdaGet-Item
, Mode özelliği öğenin bir bağlantı olduğunu belirten bir içerirl
. LinkType özelliği bağlantı türünü içerir.
AppExecLink
bağlantıları, Microsoft Store'dan bir uygulama yüklediğinizde oluşturulur. Bağlantılar için AppExecLink
Windows, LinkType veya LinkTarget özellikleri için değer sağlamaz.
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 ->
FileSystem sürücülerde gezinme
FileSystem sağlayıcısı, bilgisayardaki mantıksal sürücüleri PowerShell sürücüleri olarak eşleyerek veri depolarını kullanıma sunar. FileSystem sürücüsüyle çalışmak için, sürücü adını ve ardından iki nokta üst üste ():
kullanarak konumunuzu bir sürücü olarak değiştirebilirsiniz.
Set-Location C:
Başka bir PowerShell sürücüsünden FileSystem sağlayıcısıyla da çalışabilirsiniz. Başka bir konumdan bir dosyaya veya dizine başvurmak için, yoldaki sürücü adını (C:
, D:
, ...) kullanın.
Not
PowerShell, sağlayıcı yollarıyla çalışmak için tanıdık bir yol sağlamak için diğer adları kullanır. ve gibi dir
komutlar artık için Get-ChildItem
cd
diğer adlardırSet-Location
.ls
ve pwd
için Get-Location
bir diğer addır.
Dosyaları ve dizinleri alma
Get-ChildItem
Cmdlet geçerli konumdaki tüm dosyaları ve dizinleri döndürür. Özyineleme derinliğini filtrelemek ve denetlemek için yerleşik parametreleri aramak ve kullanmak için farklı bir yol belirtebilirsiniz.
Get-ChildItem
Cmdlet kullanımı hakkında daha fazla bilgi için bkz . Get-ChildItem.
Dosyaları ve dizinleri kopyalama
Copy-Item
Cmdlet, dosyaları ve dizinleri belirttiğiniz bir konuma kopyalar.
Parametreleri filtrelemek ve yinelemek için kullanılabilir; benzer şekilde Get-ChildItem
.
Aşağıdaki komut, yolu C:\temp\
altındaki tüm dosya ve dizinleri klasörüne C:\Windows\Temp
kopyalar.
Copy-Item -Path C:\temp\* -Destination C:\Windows\Temp -Recurse -File
Copy-Item
onay istemeden hedef dizindeki dosyaların üzerine yazar.
Bu komut, dosyayı dizinden C:\a
dizinine C:\a\bb
kopyalara.txt
.
Copy-Item -Path C:\a\a.txt -Destination C:\a\bb\a.txt
Dizindeki tüm dizinleri ve dosyaları C:\a
dizinine C:\c
kopyalar. Kopyalanacak dizinlerden herhangi biri hedef dizinde zaten varsa, Zorla parametresini belirtmediğiniz sürece komut başarısız olur.
Copy-Item -Path C:\a\* -Destination C:\c -Recurse
Daha fazla bilgi için bkz . ÖğeYi Kopyala.
Dosyaları ve dizinleri taşıma
Bu komut, dizindeki C:\a
dosyayı dizinine C:\a\aa
taşırc.txt
:
Move-Item -Path C:\a\c.txt -Destination C:\a\aa
Varsayılan olarak, cmdlet aynı ada sahip mevcut bir dosyanın üzerine yazmaz. Cmdlet'i varolan bir dosyanın üzerine yazmaya zorlamak için Zorla parametresini belirtin.
Dizin geçerli konum olduğunda dizini taşıyamazsınız. Dizini geçerli konuma taşımak için kullandığınızda Move-Item
bu hatayı görürsünüz.
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
Dosya içeriğini yönetme
Dosyanın içeriğini alma
Bu komut "Test.txt" dosyasının içeriğini alır ve konsolda görüntüler.
Get-Content -Path Test.txt
Dosyanın içeriğini başka bir cmdlet'e aktarabilirsiniz. Örneğin, aşağıdaki komut dosyanın içeriğini Test.txt
okur ve bunları ConvertTo-Html cmdlet'ine giriş olarak sağlar:
Get-Content -Path Test.txt | ConvertTo-Html
Ayrıca bir dosyanın içeriğini almak için sağlayıcı yolunu dolar işaretiyle ($
) ön ekleyebilirsiniz. Yol, değişken adlandırma kısıtlamaları nedeniyle küme ayraçları içine alınmalıdır. Daha fazla bilgi için bkz . about_Variables.
${C:\Windows\System32\Drivers\etc\hosts}
Dosyaya içerik ekleme
Bu komut dosyaya "test içeriği" dizesini Test.txt
ekler:
Add-Content -Path test.txt -Value "test content"
Dosyadaki Test.txt
mevcut içerik silinmez.
Dosyanın içeriğini değiştirme
Bu komut dosyanın içeriğini Test.txt
"test içeriği" dizesiyle değiştirir:
Set-Content -Path test.txt -Value "test content"
içeriğinin Test.txt
üzerine yazar. Cmdlet'in New-Item
Value parametresini kullanarak dosyayı oluşturduğunuzda dosyaya içerik ekleyebilirsiniz.
Dosyanın içeriğinde döngü oluşturma
Varsayılan olarak, Get-Content
cmdlet sınırlayıcı olarak satır sonu karakterini kullanır, bu nedenle bir dize koleksiyonu olarak bir dosya alır ve her satır dosyada bir dize olarak olur.
Sınırlayıcı parametresini kullanarak alternatif bir sınırlayıcı belirtebilirsiniz. Bir bölümün sonunu veya sonraki bölümün başlangıcını belirten karakterlere ayarlarsanız, dosyayı mantıksal bölümlere bölebilirsiniz.
İlk komut dosyayı alır Employees.txt
ve bölümlere ayırır ve her biri "Çalışan Kaydının Sonu" sözcükleriyle biter ve değişkenine $e
kaydeder.
İkinci komut, içindeki koleksiyondaki $e
ilk öğeyi almak için dizi gösterimini kullanır. PowerShell dizileri sıfır tabanlı olduğundan 0 dizinini kullanır.
cmdlet hakkında Get-Content
daha fazla bilgi için, için yardım konusuna Get-Content
bakın.
Diziler hakkında daha fazla bilgi için bkz . about_Arrays.
$e = Get-Content c:\test\employees.txt -Delimited "End Of Employee Record"
$e[0]
Güvenlik tanımlayıcılarını yönetme
Dosyanın ACL'sini görüntüleme
Bu komut bir System.Security.AccessControl.FileSecurity nesnesi döndürür:
Get-Acl -Path test.txt | Format-List -Property *
Bu nesne hakkında daha fazla bilgi için komutunu Get-Member cmdlet'ine aktarın veya FileSecurity Sınıfına bakın.
Dosya ve dizin oluşturma
Dizin oluşturma
Bu komut, sürücüde logfiles
C
dizini oluşturur:
New-Item -Path c:\ -Name logfiles -Type directory
PowerShell ayrıca yeni bir mkdir
dizin oluşturmak için cmdlet'ini New-Item
kullanan bir işlev (diğer admd
) içerir.
Dosya oluşturma
Bu komut, dosyayı dizinde C:\logfiles
oluşturur log2.txt
ve ardından dosyaya "test günlüğü" dizesini ekler:
New-Item -Path c:\logfiles -Name log2.txt -Type file
İçeriği olan bir dosya oluşturma
dizininde C:\logfiles
adlı log2.txt
bir dosya oluşturur ve dosyaya "test günlüğü" dizesini ekler.
New-Item -Path c:\logfiles -Name log2.txt -Type file -Value "test log"
Dosyaları ve dizinleri yeniden adlandırma
Dosyayı yeniden adlandırma
Bu komut dizindeki a.txt
C:\a
dosyayı olarak b.txt
yeniden adlandırır:
Rename-Item -Path c:\a\a.txt -NewName b.txt
Dizini yeniden adlandırma
Bu komut dizini C:\a\dd
olarak C:\a\cc
yeniden adlandırır:
Rename-Item -Path c:\a\cc -NewName dd
Dosyaları ve dizinleri silme
Dosya silme
Bu komut geçerli dizindeki dosyayı siler Test.txt
:
Remove-Item -Path test.txt
Joker karakterler kullanarak dosyaları silme
Bu komut geçerli dizindeki dosya adı uzantısına .xml
sahip tüm dosyaları siler:
Remove-Item -Path *.xml
İlişkili bir dosyayı çağırarak program başlatma
Dosya çağırma
Yerel hizmetler hakkında bilgi almak ve bilgileri dosyada depolamak için Export-Csv cmdlet'ine Services.csv
yönlendirir.
Ardından Invoke-Item uzantıyla .csv
ilişkili programda dosyayı açarservices.csv
:
Get-Service | Export-Csv -Path services.csv
Invoke-Item -Path services.csv
Belirtilen özniteliklere sahip dosya ve klasörleri alma
Sistem dosyalarını alma
Bu komut, sistem dosyalarını geçerli dizine ve alt dizinlerine alır.
Yalnızca dosyaları (dizinleri değil) almak için Dosya parametresini ve yalnızca "system" özniteliğine sahip öğeleri almak için System parametresini kullanır.
Geçerli dizindeki ve tüm alt dizinlerdeki öğeleri almak için Recurse parametresini kullanır.
Get-ChildItem -File -System -Recurse
Gizli dosyaları alma
Bu komut, gizli dosyalar da dahil olmak üzere geçerli dizindeki tüm dosyaları alır.
Gizli dosyaları alan ve !Directory
diğer tüm dosyaları alan iki değerle !Directory+Hidden
Attributes parametresini kullanır.
Get-ChildItem -Attributes !Directory,!Directory+Hidden
dir -att !d,!d+h
bu komutun eşdeğeridir.
Sıkıştırılmış ve Şifrelenmiş dosyaları alma
Bu komut geçerli dizinde sıkıştırılmış veya şifrelenmiş dosyaları alır.
İki değer Compressed
Encrypted
ve ile Attributes parametresini kullanır. Değerler, "OR" işlecini temsil eden bir virgülle ,
ayrılır.
Get-ChildItem -Attributes Compressed,Encrypted
Dinamik parametreler
Dinamik parametreler, bir PowerShell sağlayıcısı tarafından eklenen cmdlet parametreleridir ve yalnızca cmdlet sağlayıcı etkin sürücüde kullanıldığında kullanılabilir.
Kodlama Kodlaması <>
Dosya kodlamasını belirtir. Varsayılan değer ASCII'dir.
ascii
: ASCII (7 bit) karakter kümesi için kodlamayı kullanır.bigendianunicode
: Büyük endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.bigendianutf32
: Büyük endian bayt sırasını kullanarak UTF-32 biçiminde kodlar.oem
: MS-DOS ve konsol programları için varsayılan kodlamayı kullanır.unicode
: Little-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.utf7
: UTF-7 biçiminde kodlar.utf8
: UTF-8 biçiminde kodlar.utf8BOM
: Bayt Sırası İşareti (BOM) ile UTF-8 biçiminde kodlarutf8NoBOM
: Bayt Sipariş İşareti (BOM) olmadan UTF-8 biçiminde kodlarutf32
: UTF-32 biçiminde kodlar.
Desteklenen cmdlet'ler
Add-Content
Get-Content
Set-Content
Sınırlayıcı <Dizesi>
Dosyayı okurken nesnelere bölmek için kullanılan sınırlayıcıyı Get-Content
belirtir.
Varsayılan değer, satır sonu karakteridir \n
.
Bir metin dosyasını okurken, Get-Content
her biri sınırlayıcı karakteriyle biten bir dize nesneleri koleksiyonu döndürür.
Dosyada mevcut olmayan bir sınırlayıcı girildiğinde, Get-Content
dosyanın tamamı tek, sınırlandırılmamış bir nesne olarak döndürülüyor.
Sınırlayıcı olarak "Örnek Sonu" gibi bir dosya ayırıcısı belirterek büyük bir dosyayı daha küçük dosyalara bölmek için bu parametreyi kullanabilirsiniz. Sınırlayıcı korunur (atılmaz) ve her dosya bölümündeki son öğe olur.
Not
Şu anda Sınırlayıcı parametresinin değeri boş bir dize Get-Content
olduğunda hiçbir şey döndürmez. Bu bilinen bir sorundur. Dosyanın tamamını tek ve etkilenmemiş bir dize olarak döndürmeye zorlamak Get-Content
için, dosyada var olmayan bir değer girin.
Desteklenen cmdlet'ler
Get-Content
SwitchParameter Bekleme <>
dosyanın sonuna içerik eklenmesini bekler. İçerik eklenirse, eklenen içeriği döndürür. İçerik değiştiyse dosyanın tamamını döndürür.
Beklerken, Get-Content
siz kesintiye uğrayana kadar dosyayı her saniye bir denetler, örneğin CTRL+C tuşlarına basarak.
Desteklenen cmdlet'ler
Get-Content
FlagsExpression Öznitelikleri <>
Belirtilen özniteliklere sahip dosya ve klasörleri alır. Bu parametre tüm öznitelikleri destekler ve karmaşık öznitelik birleşimleri belirtmenize olanak tanır.
Attributes parametresi Windows PowerShell 3.0'da kullanıma sunulmuştur.
Attributes parametresi aşağıdaki öznitelikleri destekler:
- Arşiv
- Sıkıştırılmış
- Cihaz
- Dizin
- Şifrelenmiş
- Gizli
- Normal
- NotContentIndexed
- Çevrimdışı
- ReadOnly
- Yeniden Ayrıştırma Noktası
- SparseFile
- Sistem
- Geçici
Bu özniteliklerin açıklaması için bkz . FileAttributes numaralandırması.
Öznitelikleri birleştirmek için aşağıdaki işleçleri kullanın.
!
-DEĞİL+
-VE,
-VEYA
bir işleç ile özniteliği arasında boşluklara izin verilmez. Ancak, virgülden önce boşluklara izin verilir.
Desteklenen cmdlet'ler
Get-ChildItem
Dizin <SwitchParameter>
Dizinleri (klasörler) alır.
Directory parametresi Windows PowerShell 3.0'da kullanıma sunulmuştur.
Yalnızca dizinleri almak için Dizin parametresini kullanın ve Dosya parametresini atlar. Dizinleri dışlamak için Dosya parametresini kullanın ve Directory parametresini atlayarak veya Attributes parametresini kullanın.
Desteklenen cmdlet'ler
Get-ChildItem
Dosya <SwitchParameter>
Dosyaları alır.
Dosya parametresi Windows PowerShell 3.0'da kullanıma sunulmuştur.
Yalnızca dosyaları almak için Dosya parametresini kullanın ve Directory parametresini atlar. Dosyaları dışlamak için Dizin parametresini kullanın ve Dosya parametresini atlayarak veya Attributes parametresini kullanın.
Desteklenen cmdlet'ler
Get-ChildItem
Gizli <SwitchParameter>
Yalnızca gizli dosyaları ve dizinleri (klasörler) alır. Varsayılan olarak, Get-ChildItem
yalnızca gizli olmayan öğeleri alır.
Gizli parametresi Windows PowerShell 3.0'da kullanıma sunulmuştur.
Yalnızca gizli öğeleri almak için Gizli parametresini, diğer h
adlarını veya ah
Öznitelikler parametresinin Gizli değerini kullanın. Gizli öğeleri dışlamak için Gizli parametresini atlar veya Attributes parametresini kullanın.
Desteklenen cmdlet'ler
Get-ChildItem
ReadOnly <SwitchParameter>
Yalnızca salt okunur dosyaları ve dizinleri (klasörler) alır.
ReadOnly parametresi Windows PowerShell 3.0'da kullanıma sunulmuştur.
Yalnızca salt okunur öğeleri almak için ReadOnly parametresini, diğer ar
adını veya Attributes parametresinin ReadOnly değerini kullanın. Salt okunur öğeleri dışlamak için Öznitelikler parametresini kullanın.
Desteklenen cmdlet'ler
Get-ChildItem
Sistem <SwitchParameter>
Yalnızca sistem dosyalarını ve dizinlerini (klasörler) alır.
System parametresi Windows PowerShell 3.0'da kullanıma sunulmuştur.
Yalnızca sistem dosyalarını ve klasörlerini almak için System parametresini, diğer as
adını veya Attributes parametresinin Sistem değerini kullanın. Sistem dosyalarını ve klasörlerini dışlamak için Öznitelikler parametresini kullanın.
Desteklenen cmdlet'ler
Get-ChildItem
NewerThan <DateTime>
Bir dosyanın değeri belirtilen tarihten büyük olduğunda LastWriteTime
döndürür$True
. Aksi takdirde döndürür $False
.
Get-Date cmdlet'inin döndürdüğü gibi bir DateTime nesnesi veya gibi "August 10, 2011 2:00 PM"
bir DateTime nesnesine dönüştürülebilen bir dize girin.
Desteklenen cmdlet'ler
OlderThan <DateTime>
Bir dosyanın değeri belirtilen tarihten küçük olduğunda LastWriteTime
döndürür$True
. Aksi takdirde döndürür $False
.
Cmdlet'in döndürdüğü Get-Date
gibi bir DateTime nesnesi veya gibi "August 10, 2011 2:00 PM"
bir DateTime nesnesine dönüştürülebilecek bir dize girin.
Desteklenen cmdlet'ler
Test-Path
Akış <Dizesi>
Alternatif veri akışlarını yönetir. Akış adını girin. Joker karakterlere yalnızca dosya sistemi sürücüsünde Get-Item
ve Remove-Item
komutları için izin verilir.
Desteklenen cmdlet'ler
Add-Content
Clear-Content
Get-Item
Get-Content
Remove-Item
Set-Content
Ham <Anahtar Parametre>
Yeni satır karakterlerini yoksayar. İçeriği tek bir öğe olarak döndürür.
Desteklenen cmdlet'ler
Get-Content
ItemType <Dizesi>
Bu parametre ile New-Item
oluşturulacak öğe türünü belirtmenize olanak tanır.
Bu parametrenin kullanılabilir değerleri, kullandığınız geçerli sağlayıcıya bağlıdır.
Bir FileSystem
sürücüde aşağıdaki değerlere izin verilir:
- Dosya
- Dizin
- SymbolicLink
- Kavşak
- Sabit Bağlantı
Desteklenen cmdlet'ler
New-Item
İşlem hattını kullanma
Sağlayıcı cmdlet'leri işlem hattı girişini kabul eder. Bir cmdlet'ten başka bir sağlayıcı cmdlet'ine sağlayıcı verileri göndererek görevi basitleştirmek için işlem hattını kullanabilirsiniz. İşlem hattını sağlayıcı cmdlet'leriyle kullanma hakkında daha fazla bilgi edinmek için bu makalenin tamamında sağlanan cmdlet başvurularına bakın.
Yardım alma
Windows PowerShell 3.0'dan başlayarak, bu cmdlet'lerin bir dosya sistemi sürücüsünde nasıl davrandığını açıklayan sağlayıcı cmdlet'leri için özelleştirilmiş yardım konuları alabilirsiniz.
Dosya sistemi sürücüsü için özelleştirilmiş yardım konularını almak için, bir dosya sistemi sürücüsünde Get-Help komutunu çalıştırın veya path parametresini Get-Help
kullanarak bir dosya sistemi sürücüsü belirtin.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path c:
Ayrıca bkz.
PowerShell