Як видалити (недійсні) файли з двокрапкою на їх ім’я під Windows?


14

У мене на накопичувачі Windows досить велика кількість файлів, на яких є двокрапка. (Вони з'явилися з розпакування деяких архівів Unix.)

Коли я намагаюся їх видалити, Windows (XP) скаржиться, що файл не існує, і відмовляється його видаляти. Це відбувається при спробі видалити або перейменувати його з Провідника або командного рядка. Проте chkdskне скаржиться на ці файли і не виправляє проблему.

Будь-які ідеї, як від них позбутися?


Чи дозволить вам перейменувати їх або перемістити в інше місце? Якщо ви можете перемістити їх, спробуйте помістити їх в один каталог, а потім видаліть цей каталог.
nhinkle

З технічної точки зору вони дійсні, це недійсний провідник Windows ^ W менеджер файлів з особливими потребами.
Олексій Аверченко

Відповіді:


7

Можливо, ви зможете використовувати цей синтаксис ( на Microsoft KB 320081 ):

del "\\?\c:\path_to_file\bad:name.ext"

Дивіться також це серверне запитання за замовчуванням на ту саму тему "видалити файл, що містить недійсні символи у Windows".

Я думаю, що старі утиліти "ntfsdos" sysinternals могли також видалити / перейменувати ці файли, але вони вже не доступні після придбання після MS.


@ Hello71 (для @Ruggle Humsteader) - нові користувачі не можуть коментувати, вони можуть лише відповідати (на даний момент для цього потрібні 50 пунктів повторення: superuser.com/faq ). Однак вони можуть коментувати власні запитання та відповіді. (Просто так, що інші користувачі не плутають ваш запит.)
michael

Як би ви створили такий файл з Windows?
cutrightjm

@ekaj - файл можна створити за допомогою іншої ОС. Створіть скріншот в Ubuntu, у ньому є колонки. Потім відкрийте його в Windows - це не спрацює.
SPRBRN

@rxt Я знаю. Моя думка, якщо ви можете її видалити, ви, ймовірно, зможете зробити так, як.
cutrightjm

3
не працює для мене в Windows 7
Populus

8

Ви можете спробувати завантажитися з компакт-диска Ubuntu Live і видалити його звідти.


Вчора я зберег знімок екрана в Ubuntu, а потім спробував відкрити його в Windows VM. Він відмовився відкривати, неправильний тип файлу чи щось подібне. Тоді я зрозумів, що це може бути двокрапка у назві файлу, яку я не міг видалити в Windows. Я змінив ім'я в Nautilus, і тоді я міг відкрити файл.
SPRBRN

5

Закрийте всі відкриті файли, які зберігаються на диску, на якому містяться такі файли. Тепер відкрийте властивості накопичувача.

"Мій комп'ютер" -> "Клацніть правою кнопкою миші на цьому диску"> властивості

Потім перейдіть на вкладку " Інструменти " та натисніть " Перевірити зараз " під написом "Помилка перевірки".

[Натисніть тут для зображення] ()

Це відключить ваш диск і сканує повний диск на помилки, з часом він видалить такі файли з незаконними іменами. По завершенні він покаже повідомлення про те, що деякі файли були виправлені.

Я успішно видалив такі файли зі свого зовнішнього жорсткого диска.


Я хотів би, щоб він показав вам список того, що виправили, але це працювало для мене в Windows 8.1.
ToastyMallows

Перше, що мені допомогло, після 20 спроб. Тут використовується chkdsk, який виправляє багато речей.
oshell

1

Ви можете легко зробити це в командному рядку (CMD) без будь-яких фантазійних програм.

  1. Перейменуйте файл / папку за допомогою старого короткого позначення (наприклад, для Filename, FILENA ~ 1) та. Щоб отримати позначення, перейдіть до каталогу, що містить папку / файл з невірним іменем, та введіть:

    dir / x

  2. Перейменуйте на дійсне ім’я, використовуючи:

    ren FILENA ~ 1 fileName

  3. Тепер видаліть дійсний файл / папку в CMD або в Windows Explorer:

    del fileName



0

Якщо все інше не вдається, вам може знадобитися відредагувати ім’я безпосередньо в NTFS.

Я успішно це зробив за допомогою редактора Active @ Disk . Продовжуйте обережно.

  • відкрити програму
  • виберіть «Оглянути мій комп’ютер»
  • знайти свій файл
  • виберіть Перевірити запис файлів на панелі кнопок або в контекстному меню
  • увімкнути Дозволити редагування вмісту у спадному меню Правка або в контекстному меню
  • знайдіть ім’я в стовпці Unicode і натисніть на нього, перезапишіть погані символи хорошим символом, наприклад символом чи тире. Пам'ятайте, що і як ви перейменували, вам це знадобиться на наступному кроці.
  • поверніться на вкладку Мій комп'ютер
  • виберіть батьківський каталог файлу у вигляді дерева
  • виберіть Перевірити запис файлів на панелі кнопок або в контекстному меню
  • в дереві зліва знайдіть Атрибут $ A0 (жирним шрифтом), відкрийте його, знайдіть $ INDEX_ALLOCATION, Запуск даних, Перший кластер, натисніть на значення, воно повинно бути інтерактивним.
  • знайдіть ім’я та відредагуйте його так само, як і на попередньому кроці. Можливо, вам доведеться трохи прокрутити вниз, щоб знайти його, якщо в каталозі багато файлів.
  • якщо ви впевнені, що випадково не перезаписали будь-які інші дані, натисніть кнопку Зберегти. В іншому випадку закрийте вкладку, не зберігаючи зміни, і обережно зробіть все заново.
  • перезавантажити.

Якщо файл або каталог все ще недоступні, спробуйте chkdskзараз.


-2

Ще один альтернативний варіант, який ви можете спробувати, - це ввести CygWin , bash shell для windows. Це дозволить вам застосувати команди UNIX до своїх папок DOS.


1
Якщо ви регулярно працюєте з файлами unix на машині Windows, завжди добре встановити cygwin. Інакше вам може підійти краще завантажувати та видаляти файл з живого компакт-диска Linux, коли виникає ситуація.
Marnix A. van Ammers

5
На жаль, я спробував cygwin, і це не допомагає. 8- {Навіть cygwin не в змозі видалити файли.
Ганс-Пітер Стрер

6
Інструменти cygwin як і раніше покладаються на API Windows для видалення файлів. Якщо API Windows відмовиться від імені файлу, Windows не може нічого зробити із стандартними інструментами файлів. Я також рекомендую отримати доступ до файлової системи з іншої ОС.
долмен

Я щойно спробував отримати доступ до файлу з колонами на накопичувачі ext3 за допомогою Cygwin і навіть це не працює.
Лоран
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.