Xóa tệp chứa các ký tự không hợp lệ trong windows


16

Tôi có một số tệp chứa ký tự dấu hai chấm trong tên tệp (ví dụ: 1d67c0d23e859ed4a259749e4a720d9e: default-chìm). Khi tôi cố gắng loại bỏ chúng khỏi dòng lệnh bằng lệnh:

c:\backup> del /F *.*

Tôi nhận được "Hệ thống không thể tìm thấy tệp được chỉ định." cho mỗi tập tin. Nếu tôi chỉ định một tệp riêng lẻ:

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

Tôi nhận được "Tên tệp, tên thư mục hoặc cú pháp nhãn âm lượng không chính xác.". Nếu tôi cố gắng sử dụng nd trên thư mục cha, tôi nhận được

Làm thế nào tôi có thể loại bỏ các tập tin này?


2
Các tệp này được tạo trên phân vùng NTFS khi tôi được khởi động vào Linux. Đoán tôi sẽ phải sử dụng đĩa khởi động Linux vì có vẻ như các cửa sổ không giống như dấu hai chấm trong tên tệp ở cấp trình điều khiển hệ thống tệp.
grom

Câu trả lời:


22

Có một bài viết Microsoft KB liệt kê các cách có thể để xóa các tệp đó tại:

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

Cách tôi thường sử dụng là phương thức API gốc:

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

Dựa theo:

http://msdn.microsoft.com/en-us/l Library / aa365247% 28VS85% 29.aspx

Đây :là một ký tự dành riêng trên NTFS, phương thức API gốc mà tôi đã đề cập ở trên là cách được đề xuất để xóa các tệp đó.


4
Điều này không làm việc cho dấu hai chấm, vì nó được hiểu là một luồng dữ liệu được đặt tên.
psusi

Điều này làm việc cho trường hợp của tôi. tập tin tôi gặp sự cố có dấu phẩy,
Maher Fattouh

Cảm ơn, điều này đã làm việc cho tôi. Các tập tin kết thúc trong một khoảng thời gian. CA848D8F.
Mastro

1
Không hoạt động. Tên tệp của tôi chứa dấu gạch chéo ngược.
Pacerier

Nếu tên tệp chứa :như OP đã hỏi, phương pháp này không hoạt động. Sử dụng chkdskhoặc xóa nó từ một linux trực tiếp.
Sourav Ghosh

15

Tôi đoán bạn có thể thử tên 8.3?

del /F 1d67c0~1

Lưu ý rằng trên các ổ đĩa NTFS, bạn có thể vô hiệu hóa rõ ràng chức năng 8.3, vì vậy nếu đó là trường hợp bạn không may mắn cho tùy chọn này. Để có được tên tập tin dir adir /x

Đã từng có một công cụ phần mềm miễn phí được gọi delinvfilenhưng họ đã biến mất và đổi nó thành phần mềm chia sẻ / trả tiền


Làm thế nào tôi có thể làm điều này trên một khối NTFS được tạo bằng formatlệnh có hỗ trợ 8.3 tên bị vô hiệu hóa?
dùng2284570

1
@ user2284570 phương pháp này sẽ không hoạt động. Khi tôi viết câu trả lời đó, Microsoft đã kích hoạt 8.3 tên, nhưng ngày nay nó bị tắt theo mặc định.
Mark Henderson

@MarkHenderson, Tên tệp của tôi là 7:2. Làm cách nào để sử dụng tên 8.3 cho tên tệp của 7:2?
Pacerier

@Pacerier xem bình luận trước của tôi. Phương pháp này sẽ không hoạt động trên các hệ điều hành hiện đại. Windows XP trở lên.
Mark Henderson

13

Điều này làm việc cho tôi:

  1. Đã chạy chkdsk /f
  2. PC khởi động lại
  3. Sau đó, tôi đã có thể chọn và xóa các tập tin

4

Đóng tất cả các tệp, nếu có bất kỳ tệp nào được mở, được lưu trong ổ đĩa chứa các tệp đó. Bây giờ, Mở thuộc tính ổ đĩa.

"Máy tính của tôi" -> "Nhấp chuột phải vào ổ đĩa này"> thuộc tính

Sau đó, chuyển đến tab " Công cụ " và nhấp vào " Kiểm tra ngay " trong nhãn 'Lỗi kiểm tra'.

nhập mô tả hình ảnh ở đâyClick vào đây để phóng to ảnh

Điều này sẽ ngắt kết nối ổ đĩa của bạn và sẽ quét toàn bộ ổ đĩa để tìm lỗi, cuối cùng nó sẽ xóa các tệp đó với tên bất hợp pháp. Khi hoàn thiện, nó sẽ hiển thị một thông báo cho biết một số tệp đã được sửa.

Tôi đã xóa thành công các tập tin như vậy từ đĩa cứng bên ngoài của tôi.


3

Tôi có Hệ thống con cho các Ứng dụng dựa trên UNIX được cài đặt trên PC của tôi (Windows 7). Từ shell Windows, tôi có thể tạo một tệp với touch 1d67c0d23e859ed4a259749e4a720d9e:default-sink, sau đó xóa nó bằngrm *:*


Các tiện ích tuân thủ POSIX (như SFU) có thể xóa các tệp đó.
Ausmith1

@JoeI Internet: sigghh Microsoft đã xóa tất cả các hệ thống con không có cửa sổ từ năm 2012 trở lên.
dùng2284570

... nhưng một hệ thống con unix đã quay trở lại trong win 10.
user165568

1

Hãy thử đổi tên thư mục mẹ thành một ký tự (a, 1, v.v.) và sau đó thử xóa thư mục mẹ. Nếu nó không hoạt động, sau đó di chuyển đến thư mục con đầu tiên và đổi tên nó thành một ký tự duy nhất và thử xóa lại. Tôi thường sử dụng phương pháp này cho các tệp có ký tự không hợp lệ (đừng hỏi tôi cách tạo chúng vì tôi không biết) hoặc cho các tệp có đường dẫn vượt quá mức tối đa (một lần nữa, đừng hỏi làm thế nào điều này xảy ra).


1

7zip có thể xóa các tệp mà Windows không thành công; Trước đây tôi đã sử dụng nó khi xử lý tên tệp quá dài, nhưng tôi chưa bao giờ thử nó trên các tệp có dấu hai chấm. Chúng thường được sử dụng để biểu thị ADS.


Điều này là do 7-zip sử dụng cygwin.
dùng2284570

1
Không hoạt động cho cả các tập tin của tôi. Tệp đầu tiên có tên tệp với dấu gạch chéo ngược và tệp thứ hai có tên tệp bằng dấu hai chấm.
Pacerier

Không, đó là vì 7-zip sử dụng API Windows thay vì shell. Nó có những hạn chế giống như API: nó nghĩ rằng dấu hai chấm biểu thị luồng.
dùng165568

7zip hoạt động với tôi
user1278519

1

Tôi có một hệ thống khởi động kép và không có câu trả lời nào ở trên làm việc cho tôi. Nếu tệp được đặt trong một đĩa được gắn bởi HĐH khác của bạn (Ubuntu 16.04 LTS cho tôi), bạn có thể mô phỏng xóa nó bằng HĐH khác của bạn;)


Điều này khá hợp lý khi trong một liên kết (mặc dù không thể thực hiện với máy trực tuyến). Ngoài ra, khởi động kép riêng không bắt buộc, vì chúng ta có thể khởi động phân phối trực tiếp để thực hiện việc này như đĩa cài đặt Fedora hoặc Knoppix. TUY NHIÊN, mọi người nên cẩn thận khi ở trong môi trường như thế này, vì trình điều khiển NTFS3G mà chúng tôi sử dụng để gắn hệ thống này sẽ không tôn trọng hầu hết các quyền / ACL của Windows (đó chính xác là lý do tại sao nó rất hiệu quả trong việc loại bỏ các tệp "bị kẹt") .
đệm

0

Bạn đã thử trích dẫn tên tập tin? Đưa ra lệnh chính xác mà bạn đang chạy sẽ có ích.


Tôi đã thêm nó vào lệnh chính xác mà tôi đang chạy để đặt câu hỏi.
grom

0

Bạn đã thử sử dụng một ký tự đại diện? Ví dụ: 'del 1d67c0d23e859ed4a259749e4a720d9e *. *' Có thể hoạt động.


Bạn tôi đã thử ký tự đại diện. Không có may mắn
grom

1
Điều tiếp theo mà tôi nghĩ đến là khởi động hệ thống với một đĩa cd linux (như cd cứu hộ hệ thống), gắn âm lượng vào đó và thử xóa từ đó. Bạn có thể nhận được kết quả thú vị tại thời điểm đó, vì ai biết được những gì đang thực sự xảy ra trong hệ thống tập tin.
Michael Kohne

@MichaelKohne: Tôi nghĩ rằng sử dụng triển khai đường dẫn Unix cũng là giải pháp phù hợp. Nhưng tại sao lại sử dụng linux? các cửa sổ được chạy như một hệ thống con NT và đã có một hệ thống con POSIX / Unix NT.
dùng2284570

1
@ user2284570 - vì thực tế là chúng được tạo bằng Linux, có vẻ như trình điều khiển NTFS linux cho phép thứ gì đó không nên có, mà ngay cả trình bao Windows POSIX cũng không thể lướt qua trình điều khiển hệ thống tệp. Đơn giản hơn nhiều để khởi động CD linux trực tiếp, xóa tệp không có thật và khởi động lại vào Windows.
Michael Kohne

@MichaelKohne: Không, vì các đường dẫn UNC đã hoạt động (hệ thống con riêng) và với các hệ thống con POSIX không có quyền truy cập trực tiếp vào các luồng dữ liệu thay thế, vì vậy bạn có thể sử dụng :các tệp bên trong.
dùng2284570

0

Bạn đã thử dir / X để tìm ra tên 8.3 thực sự, và sau đó thử xóa tên đó?

Hoặc, tập tin đó có thể có một luồng dữ liệu thay thế không? Bạn có thể muốn xem xét công cụ này tại http://www.nirsoft.net/utils/alternate_data_streams.html để xem những gì có thể cho bạn biết (Tôi chưa bao giờ sử dụng công cụ đó, nó chỉ xuất hiện khi tôi tìm kiếm) .


0

Tôi đã có một thư mục với một dấu phẩy trong tên. Tôi đã thử một vài gợi ý ở trên và không thể thực hiện được.

Tôi đã có thể xóa các thư mục với cygwin. Cài đặt ứng dụng đó không dành cho tất cả mọi người, nhưng nó sẽ thực hiện công việc.


0

Không có gợi ý nào ở trên làm việc cho tôi. Tôi đã sử dụng WinRar. Mở winrar và bạn sẽ thấy một danh sách các tệp, trong đó bạn sẽ nghi ngờ tệp "tên tệp" (được tạo bởi bạn là "tên tệp: some tựa.txt". Đổi tên tệp trong Winrar và cung cấp cho nó một phần mở rộng (như .txt hoặc .doc).

Quay trở lại Windows Explorer, bạn sẽ thấy "tên tệp .txt" (Hoặc doc). Xóa nó từ đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.