Aracılığıyla paylaş


about_FileSystem_Provider

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:TEMPile 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.

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 SymLinkdestekler. Windows NTFS, HardLinkiç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 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-ChildItemiçin diğer adlardır cdSet-Locationiçin bir diğer addır. ve pwdGet-Locationiç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-ChildItembenzer şekilde filtrelemek ve yinelemek için kullanılabilir.

Aşağıdaki komut, C:\temp\ yolunun altındaki tüm dosya ve dizinleri C:\Windows\Tempklasö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.txtiç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 $ealmak 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-Contentiç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.txtolarak 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\ddolarak 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 Encryptediki 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 \nsatı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, $falsedö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

  • Test Yolu

OlderThan <DateTime>

Bir dosyanın $true değeri belirtilen tarihten küçük olduğunda LastWriteTime döndürür. Aksi takdirde, $falsedö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-Itemile 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.