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.

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 SymLinkdesteğiHardLink. Windows NTFS, LinkType için , SymLink, Junctionve 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 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-ChildItemcd diğer adlardırSet-Location.ls ve pwd için Get-Locationbir 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\Tempkopyalar.

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 $eilk öğ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-Contentbakı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.txtyeniden adlandırır:

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

Dizini yeniden adlandırma

Bu komut dizini C:\a\ddolarak 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 !Directorydiğer tüm dosyaları alan iki değerle !Directory+HiddenAttributes 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 Encryptedve 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 kodlar
  • utf8NoBOM: Bayt Sipariş İş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>

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-Itemoluş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.