Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sağlayıcı adı
FileSystem
Sürücü
C:
, D:
, Temp:
...
Yetenek -lerini
FilterShouldProcess
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ş bir ağ paylaşımı olabilir.
PowerShell Sürüm 7.0'da başlayarak, Temp:
adlı 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, $Env:TEMP
ile aynıdır. Windows olmayan sistemlerde ortam değişkeni tanımlanmamışsa konum $Env:TMPDIR
veya /tmp
ile aynıdır.
FileSystem sağlayıcısı, bu makalede ele alınan aşağıdaki cmdlet'leri destekler.
- Get-Location
- Konum Ayarlama
- Öğe al
- Get-ChildItem
- Invoke-Item
- Öğe Taşı
- Yeni Öğe
- Öğe kaldırma
- Get-ItemProperty
- Set-ItemProperty
- Öğe temizle
- Clear-ItemProperty
- Öğe kaldırma
- 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 HardLink
ve SymLink
destekler. Windows NTFS, HardLink
için SymLink
, Junction
, ve diğer birçok değeri destekler.
Bağlantılı öğe hakkında bilgi almak için Get-Item
veya Get-ChildItem
kullandığınızda, Modu özelliği öğenin bağlantı olduğunu belirten bir l
içerir.
LinkType özelliği bağlantı türünü içerir.
AppExecLink
bağlantıları, Microsoft Store'dan bir uygulama yüklediğinizde oluşturulur.
AppExecLink
bağlantılar için 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:
Ayrıca, 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.
dir
ve ls
gibi komutlar artık Get-ChildItem
için diğer adlardır cd
Set-Location
için bir diğer addır. ve pwd
Get-Location
için bir diğer addır.
Dosyaları ve dizinleri alma
Get-ChildItem
cmdlet'i 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'i, dosyaları ve dizinleri belirttiğiniz bir konuma kopyalar.
Parametreler, Get-ChildItem
benzer şekilde filtrelemek ve yinelemek için kullanılabilir.
Aşağıdaki komut, C:\temp\
yolunun altındaki tüm dosya ve dizinleri C:\Windows\Temp
klasörüne kopyalar.
Copy-Item -Path C:\temp\* -Destination C:\Windows\Temp -Recurse -File
Copy-Item
, onay istemeden hedef dizindeki dosyaların üzerine yazar.
Bu komut a.txt
dosyasını C:\a
dizininden C:\a\bb
dizinine kopyalar.
Copy-Item -Path C:\a\a.txt -Destination C:\a\bb\a.txt
C:\a
dizinindeki tüm dizinleri ve dosyaları C:\c
dizinine 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. Öğe Kopyalama.
Dosyaları ve dizinleri taşıma
Bu komut, c.txt
dizinindeki C:\a
dosyasını C:\a\aa
dizinine taşır:
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 Force parametresini belirtin.
Dizin geçerli konum olduğunda dizini taşıyamazsınız. Dizini geçerli konuma taşımak için Move-Item
kullandığınızda 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 Test.txt
dosyasının içeriğini 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ı yolunun önüne dolar işareti ($
) 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, "test içeriği" dizesini Test.txt
dosyasına ekler:
Add-Content -Path test.txt -Value "test content"
Test.txt
dosyasındaki mevcut içerik silinmez.
Dosyanın içeriğini değiştirme
Bu komut, Test.txt
dosyasının içeriğini "test içeriği" dizesiyle değiştirir:
Set-Content -Path test.txt -Value "test content"
Test.txt
içeriğinin üzerine yazar.
cmdlet'in New-Item
parametresini kullanarak dosyayı oluştururken dosyaya içerik ekleyebilirsiniz.
Dosyanın içeriğinde döngü oluşturma
varsayılan olarak, Get-Content
cmdlet'i sınırlayıcı olarak satır sonu karakterini kullanır, böylece bir dize koleksiyonu olarak bir dosya alır ve her satır dosyada bir dize olarak olur.
Alternatif sınırlayıcı belirtmek için Sınırlayıcı parametresini kullanabilirsiniz. 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 Employees.txt
dosyasını alır ve her biri "Çalışan Kaydı Sonu" sözcükleriyle biten bölümlere ayırır ve $e
değişkenine kaydeder.
İkinci komut, koleksiyondaki ilk öğeyi $e
almak için dizi gösterimini kullanır. PowerShell dizileri sıfır tabanlı olduğundan 0 dizinini kullanır.
Get-Content
cmdlet'i hakkında daha fazla bilgi için Get-Content
için yardım konusuna 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, logfiles
sürücüsünde C
dizini oluşturur:
New-Item -Path C:\ -Name logfiles -Type Directory
PowerShell ayrıca yeni bir dizin oluşturmak için mkdir
cmdlet'ini kullanan bir md
işlevi (diğer ad New-Item
) içerir.
Dosya oluşturma
Bu komut, log2.txt
dizininde C:\logfiles
dosyasını oluşturur 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
log2.txt
dizininde C:\logfiles
adlı 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, a.txt
dizinindeki C:\a
dosyasını b.txt
olarak yeniden adlandırır:
Rename-Item -Path C:\a\a.txt -NewName b.txt
Dizini yeniden adlandırma
Bu komut, C:\a\cc
dizinini C:\a\dd
olarak yeniden adlandırır:
Rename-Item -Path C:\a\cc -NewName dd
Dosyaları ve dizinleri silme
Dosya silme
Bu komut geçerli dizindeki Test.txt
dosyasını siler:
Remove-Item -Path test.txt
Joker karakterler kullanarak dosyaları silme
Bu komut, geçerli dizinde .xml
dosya adı uzantısına 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 dosyasında depolamak için Export-Csv cmdlet'ine Services.csv
cmdlet'i.
Ardından Invoke-Item, services.csv
uzantısıyla ilişkili programda .csv
dosyasını açar:
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 "system" özniteliğine sahip öğeleri almak için yalnızca dosyaları (dizinleri değil) almak için Dosya parametresini ve System parametresini kullanır.
Geçerli dizindeki ve tüm alt dizinlerdeki öğeleri almak için Yineleme 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 diğer tüm dosyaları alan !Directory+Hidden
!Directory
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.
Öznitelikleri parametresini Compressed
ve Encrypted
iki değerle kullanır. Değerler, "OR" işlecini temsil eden bir virgül ,
ile 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 <Kodlama>
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 kodlar -
utf8NoBOM
: Bayt Sırası İşareti (BOM) olmadan UTF-8 biçiminde kodlar -
utf32
: UTF-32 biçiminde kodlar.
Desteklenen cmdlet'ler
Add-Content
Get-Content
Set-Content
Sınırlayıcı <Dizesi>
Get-Content
dosyayı okurken nesnelere bölmek için kullandığı sınırlayıcıyı belirtir.
Varsayılan değer \n
satır sonu karakteridir.
Bir metin dosyasını okurken, Get-Content
her biri sınırlayıcı karakteriyle biten bir dize nesneleri koleksiyonu döndürür.
Dosyada var olmayan bir sınırlayıcı girildiğinde, Get-Content
dosyanın tamamını tek, sınırlandırılmamış bir nesne olarak döndürür.
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 olduğunda Get-Content
hiçbir şey döndürmez. Bu bilinen bir sorundur.
Get-Content
dosyanın tamamını tek ve etkilenmemiş bir dize olarak döndürmeye zorlamak için, dosyada var olmayan bir değer girin.
Desteklenen cmdlet'ler
Get-Content
SwitchParameter<>bekleyin
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<>Öznitelikler
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.
Öznitelikleri parametresi Windows PowerShell 3.0'da kullanıma sunulmuştur.
Öznitelikleri parametresi aşağıdaki öznitelikleri destekler:
- arşiv
- sıkıştırılmış
- cihaz
- Dizin
- şifrelenmiş
- Gizli
- Normal
- NotContentIndexed
- Çevrimdışı
- ReadOnly
- ReparsePoint
- SparseFile
- sistem
- geçici
Bu özniteliklerin açıklaması için bkz. FileAttributes sabit listesi.
Öznitelikleri birleştirmek için aşağıdaki işleçleri kullanın.
-
!
- DEĞİl -
+
- AND -
,
- 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 Directory parametresini kullanın ve Dosya parametresini atlar. Dizinleri dışlamak için Dosya parametresini kullanın ve Directory parametresini atlayıp Öznitelikleri 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 Directory parametresini kullanın ve Dosya parametresini atlayıp Öznitelikler 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.
Hidden parametresi Windows PowerShell 3.0'da kullanıma sunulmuştur.
Yalnızca gizli öğeleri almak için gizli parametresini, h
veya ah
diğer adlarını ya da Öznitelikleri parametresinin Gizli değerini kullanın. Gizli öğeleri dışlamak için Gizli parametresini atın veya Öznitelikleri 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, ar
diğer adını veya Öznitelikleri parametresinin ReadOnly değerini kullanın. Salt okunur öğeleri dışlamak için Öznitelikleri 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, as
diğer adını veya Öznitelikleri parametresinin System 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 $true
değeri belirtilen tarihten büyük olduğunda LastWriteTime
döndürür. Aksi takdirde, $false
döndürür.
Get-Date cmdlet'inin döndürdüğü bir veya gibi bir DateTime nesnesine dönüştürülebilen bir dize gibi bir "August 10, 2011 2:00 PM"
nesnesi girin.
Desteklenen cmdlet'ler
OlderThan <DateTime>
Bir dosyanın $true
değeri belirtilen tarihten küçük olduğunda LastWriteTime
döndürür. Aksi takdirde, $false
döndürür.
cmdlet'in döndürdüğü gibi bir Get-Date
nesnesi veya gibi bir "August 10, 2011 2:00 PM"
nesnesine dönüştürülebilen 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ında izin verilir.
Desteklenen cmdlet'ler
Add-Content
Clear-Content
Get-Item
Get-Content
Remove-Item
Set-Content
Ham <SwitchParameter>
Yeni satır karakterlerini yoksayar. İçeriği tek bir öğe olarak döndürür.
Desteklenen cmdlet'ler
Get-Content
ItemType <Dize>
Bu parametre, New-Item
ile 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.
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 dosya sistemi sürücüsü belirtmek için Get-Help
parametresini kullanın.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path c:
Ayrıca bkz.
PowerShell