Windows Gezgini'nde özel karakterli dosya isimleri aramaya çalışılıyor (Windows 10)


2

Çok sinir bozucu bir insanın hatasından dolayı binlerce dosyam kopyalandı, çoğu kez defalarca. Bu, dosya adı (2), dosya adı (3) vb. Adında binlerce dosyaya neden oldu.

Benim parlak fikrim, (2) için bir arama yapmak ve tüm sonuçları silmektı, ancak arama, parantez dahil etmek yerine, dosya adında 2 numaralı tüm dosyaları göstermeye devam ediyor.

Başka bir yerde çözüm aradıktan sonra ismini: ~ = (2), "(2)" ve hatta "(2)" "(2)" denedim. Hiçbiri işe yaramadı. Dosya adında sadece 2 olan dosyaları dışlamak istiyorum, SADECE parantez içinde iki olan dosyaları istiyorum.

Birisi yardım edebilir mi lütfen?


Öyleyse sadece Windows Gezgini çözümü mi arıyorsunuz yoksa bir komut dosyası çözümü de yeterli olur mu?
Pimp Juice IT

Yanıtlar:


3

Sadece parantez içinde iki tane olan dosyaları istiyorum. (2)

Aşağıdaki arama ifadesini kullanın:

name:~"*(2)*"

Notlar:

  • ~ hazır bilgi dizesi göstergesidir ve aşağıdakiler tüm dosya adıyla eşleşmelidir

  • İhtiyaçlarınıza bağlı olarak filename: daha iyi olabilir name:

Önce:

enter image description here

Sonra:

enter image description here


Daha fazla okuma


@Sia Daha fazla yardıma ihtiyacınız var mı? Bu sorunuzu cevapladıysa, lütfen unutmayın cevabı kabul et .
DavidPostill

Hayır, teşekkür ederim, düzeltildi! Bu, bu siteyi ilk kez kullanıyorum ve cevabı kabul etmeyi bilmiyordum. Ticked!
Sia

0

Bir PowerShell betiği öneririm ki:

  • sonunda tüm dosyaları bulur (1) BaseName'e belirli bir süre için tekrarlı olarak başlangıç ​​klasörü.
  • Muhtemel tüm kopyaları bulmak için numarasız bir dir yapar ve onay almak için sadece tam kopyaları silmek için bir karma oluşturur.
  • Bu arada dosyalar değiştirilirse, bunlar artık tam kopya değildir ve bunlar arasında düşme olur.

Değiştir Push-Location başlangıç ​​klasörünüzü sığdırmak için dosyayı uzantıyla kaydedin .ps1 ve yürütün.

## Q:\Test\2017\07\15\SU_1230033.ps1
## inspired by http://n3wjack.net/2015/04/06/find-and-delete-duplicate-files-with-just-powershell/

Push-Location "D:\"
Get-ChildItem "* (1).*" -Recurse -File | ForEach-Object {
    $BaseFile = (Join-Path $_.Directory ($_.BaseName -replace ' ?\(\d+\)'))+"*$($_.Extension)"
    Get-ChildItem $BaseFile | Get-FileHash | Group-Object Hash |  Where { $_.Count -gt 1 } | 
        ForEach-Object {$_.Group | Select-Object -Skip 1 } | Remove-Item -Confirm
}
PopD

Dosyaların sadece bir listesini almak için bu azaltılmış betiği kullanın:

Push-Location "D:\"
Get-ChildItem "* (1).*" -Recurse -File | ForEach-Object {
    $BaseFile = (Join-Path $_.Directory ($_.BaseName -replace ' ?\(\d+\)'))+"*$($_.Extension)"
    Get-ChildItem $BaseFile 
}
PopD

Explorer Search işlevini kullanarak kolayca yapabiliyorken neden karmaşık bir PowerShell betiği kullanıyorsunuz?
DavidPostill

@DavidPostill ek işlevsellik nedeniyle? Sadece ikili eşit dosyaları silmek için küfür eder.
LotPings

TAMAM. Ama sorulan soru bu değildi :)
DavidPostill

Korkarım senaryoyu nasıl kullanacağımı bilmiyorum ve David'in çözümü benim için çalıştı. Ama yardımın için teşekkürler!
Sia
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.