Windows'da geçersiz karakterler içeren dosyayı sil


16

Dosya adında iki nokta üst üste karakteri içeren bazı dosyalar var (örn. 1d67c0d23e859ed4a259749e4a720d9e: default-sink). Onları komutla komut satırından kaldırmaya çalıştığımda:

c:\backup> del /F *.*

"Sistem belirtilen dosyayı bulamıyor." her dosya için. Tek bir dosya belirtirsem:

c:\backup> del /F "1d67c0d23e859ed4a259749e4a720d9e:default-sink"

"Dosya adı, dizin adı veya birim etiketi sözdizimi yanlış." Ana klasörde rd kullanmaya çalışırsam

Bu dosyaları nasıl kaldırabilirim?


2
Bu dosyalar Linux'a önyüklendiğimde NTFS bölümünde oluşturuldu. Sanırım windows önyükleme diski kullanmak zorunda kalacak gibi görünüyor Windows dosya sistemi sürücü düzeyinde dosya adlarında iki nokta üst üste gibi.
grom

Yanıtlar:


22

Bu tür dosyaları silmenin olası yollarını listeleyen bir Microsoft KB makalesi vardır:

http://support.microsoft.com/kb/320081

Genelde kullandığım yol, yerel API yöntemidir:

del "\\?\c:\path\1d67c0d23e859ed4a259749e4a720d9e:default-sink"

Göre:

http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

:NTFS üzerinde ayrılmış bir karakterdir, ben yukarıda belirtilen yerli API yöntemi bu tür dosyaları silmek için tavsiye edilen bir yoldur.


4
Bu, adlandırılmış bir veri akışı olarak yorumlandığından, iki nokta üst üste için çalışmaz.
psusi

Bu benim durumum için çalıştı. sorun yaşadığım dosya bir virgül içeriyordu,
Maher Fattouh

Teşekkürler, bu benim için çalıştı. Dosya bir süre içinde sona erdi. CA848D8F.
Mastro

1
Çalışmıyor. Dosya adımda ters eğik çizgi var.
Pacerier

Dosya adı :OP'nin istediği gibi içeriyorsa , bu yöntem çalışmaz. chkdskCanlı bir Linux'ta kullanın veya silin.
Sourav Ghosh

15

Sanırım 8.3 adını deneyebilir misin?

del /F 1d67c0~1

NTFS sürücülerinde 8.3 işlevselliğini açıkça devre dışı bırakabileceğinizi unutmayın, bu durumda bu seçenek için şansınız kalmaz. Dosya adını almak için dir adir /x

Eskiden denilen ücretsiz bir araç vardı delinvfileama gittiler ve bunu shareware / ücretli olarak değiştirdiler


format8.3 ad desteği devre dışı bırakılmış komutla oluşturulan bir NTFS biriminde bunu nasıl yapabilirim ?
user2284570

1
@ user2284570 bu yöntem çalışmaz. Bu yanıtı yazdığımda, Microsoft'un 8.3 adı etkinleştirildi, ancak bu günlerde varsayılan olarak devre dışı bırakıldı.
Mark Henderson

@ MarkHenderson, Dosya adım 7:2. Dosya adı için 8.3 adını nasıl kullanabilirim 7:2?
Pacerier

@Pacerier önceki yorumuma bakın. Bu yöntem modern işletim sistemlerinde çalışmaz. Windows XP veya daha eski sürümü.
Mark Henderson

13

Bu benim için çalıştı:

  1. Koştu chkdsk /f
  2. Yeniden başlatılan PC
  3. Sonra dosyayı seçip sildim

4

Bu dosyaları içeren sürücüye kaydedilmiş, açıksa, tüm dosyaları kapatın. Şimdi, sürücü özelliklerini açın.

"Bilgisayarım" -> "Bu sürücüye sağ tıklayın"> özellikler

Ardından, " Araçlar " sekmesine gidin ve "Hata kontrolü" etiketi altında " Şimdi kontrol et " i tıklayın .

resim açıklamasını buraya girinBüyük resim için tıklayınız.

Bu, sürücünüzün bağlantısını keser ve tüm sürücüyü hatalar için tarar, sonunda bu tür dosyaları yasadışı adlarla siler. Tamamlandığında bazı dosyaların düzeltildiğini söyleyen bir mesaj gösterecektir.

Bu dosyaları harici sabit diskimden başarıyla sildim.


3

Ben UNIX Tabanlı Uygulamalar için Alt Sistem bilgisayarıma (Windows 7) yüklü. Windows kabuğundan, bir dosya oluşturabilir touch 1d67c0d23e859ed4a259749e4a720d9e:default-sinkve ardındanrm *:*


POSIX uyumlu yardımcı programlar (SFU gibi) bu dosyaları silebilir.
Ausmith1

@JoeInternet: sigghh Microsoft, 2012 ve sonraki sürümlerle birlikte tüm Windows olmayan alt sistemleri kaldırmıştır.
user2284570

... ancak bir unix alt sistemi tekrar kazanma 10'a döndü.
user165568

1

Üst klasörü tek bir karakterle (a, 1 vb.) Yeniden adlandırmayı ve ardından üst klasörü silmeyi deneyin. Çalışmazsa, ilk alt klasöre gidin ve tek bir karakterle yeniden adlandırın ve silmeyi tekrar deneyin. Bu yöntemi genellikle geçersiz karakterlere sahip dosyalar için (bilmediğim için nasıl oluşturulduğunu sorma) veya yolun maksimum değeri aştığı dosyalar için kullanıyorum (yine, bunun nasıl olduğunu sormayın).


1

7zip Windows'un başarısız olduğu dosyaları silebilir; Geçmişte uzun dosya adlarıyla uğraşırken kullandım, ancak sütunları olan dosyalarda hiç denemedim. Normalde ADS'yi belirtmek için kullanılırlar.


Bunun nedeni 7-zip'in cygwin kullanmasıdır.
user2284570

1
Her iki dosyam için de çalışmıyor. İlk dosyanın ters eğik çizgi ile dosya adı ve ikinci dosyanın iki nokta üst üste ile dosya adı vardır.
Pacerier

Hayır, çünkü 7-zip kabuk yerine Windows API'sini kullanıyor. API ile aynı sınırlamalara sahiptir: sütunların akışları gösterdiğini düşünür.
user165568

7zip benim için çalıştı
user1278519

1

Çift önyükleme sistemim var ve yukarıdaki cevapların hiçbiri benim için işe yaramadı. Dosya diğer işletim sisteminiz tarafından monte edilen bir diskte bulunuyorsa (benim için Ubuntu 16.04 LTS) diğer işletim sisteminizi kullanarak silebilirsiniz;)


Bu, bir bağlama sırasında oldukça makul (ancak çevrimiçi bir makineye yapılamaz). Ayrıca, Fedora yükleyici diski veya Knoppix gibi canlı bir dağıtım önyükleyebileceğimiz için yerel çift önyükleme gerekli değildir. Bununla birlikte, bu sistemi monte etmek için kullandığımız NTFS3G sürücüsü çoğu Windows izinlerine / ACL'ye saygı göstermeyeceğinden, bu tür bir ortamdayken dikkatli olunmalıdır (bu, "sıkışmış" dosyalardan kurtulmanın tam olarak sebebidir) .
Biriktirici

0

Dosya adlarını aktarmayı denediniz mi? Çalıştırdığınız tam komutu vermek kullanışlı olacaktır.


Sorgulamaya çalıştığım tam komuta ekledim.
grom

0

Bir joker karakter kullanmayı denediniz mi? Örneğin 'del 1d67c0d23e859ed4a259749e4a720d9e *. *' İşe yarayabilir.


Sen joker karakterler denedim. Şans yok
grom

1
Düşündüğüm bir sonraki şey, sistemi bir linux cd ile (sistem kurtarma cd'si gibi) önyüklemek, birimi buraya monte etmek ve oradan silmeyi denemek. Bu noktada, dosya sisteminde gerçekten neler olduğunu kimin bildiğinden ilginç sonuçlar alabilirsiniz.
Michael Kohne

@MichaelKohne: Bence Unix yolu uygulaması kullanmak da doğru çözüm. Neden linux kullanıyorsunuz? Windows NT alt sistemi olarak çalıştırılır ve zaten bir POSIX / Unix NT alt sistemi vardır.
user2284570

1
@ user2284570 - Linux ile oluşturuldukları göz önüne alındığında, linux NTFS sürücüsünün, Windows POSIX kabuğunun bile dosya sistemi sürücüsünü geçemeyeceği bir şeye izin vermemesi muhtemel görünüyor. Canlı bir linux CD'sini önyüklemek, sahte dosyayı kaldırmak ve Windows'a yeniden başlatmak çok daha basittir.
Michael Kohne

@MichaelKohne: Hayır, çünkü UNC yolları zaten çalışıyor (yerel alt sistem) ve POSIX alt sistemleri ile alternatif veri akışlarına doğrudan erişim yok, bu nedenle :iç dosyaları kullanabilirsiniz .
user2284570


0

Adında virgül bulunan bir klasörüm vardı. Yukarıdaki önerilerin birkaçını denedim ve işe yaramadım.

Cygwin ile klasörleri silebilirdim. Bu uygulamayı yüklemek herkes için değil, ancak işi yapacak.


0

Yukarıdaki önerilerin hiçbiri benim için işe yaramadı. WinRar kullandım. Winrar'ı açtığınızda, şüpheli dosya "dosyaadı" (sizin tarafınızdan "dosyaadı: bazı_metin.txt" olarak oluşturulmuş) olacağınız dosyaların bir listesini göreceksiniz. Dosyayı Winrar'da yeniden adlandırın ve bir uzantı (.txt veya Doc).

Windows Gezgini'ne geri dönün "dosyaadı .txt" (Veya doc) göreceksiniz. Oradan silin.

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.