82

У меня есть песня, которую Windows не может воспроизвести, потому что в названии файла есть вопросительный знак.

"Where Have All the Cowboys Gone?.ogg" // as an example

Поэтому я пытаюсь переименовать его, и Windows жалуется, пробую ли я его в Проводнике или из командной строки.

Ошибка при попытке скопировать, переименовать или переместить:

Неверный синтаксис имени файла, имени каталога или метки тома

Есть ли способ Windows переименовать в этом случае?

Обновить

Я буду следить за этим вопросом, но после 13 ответов и множества попыток (кроме сторонних решений) кажется, что Windows не может этого сделать (или, по крайней мере, мои окна не могут, никаких коротких имен). Поэтому я принимаю ответ, который в любом случае был моим первоначальным решением использования Linux. Было бы неплохо увидеть, как Windows справится с этим, так что не останавливайтесь только потому, что я принял этот ответ, вопрос все еще стоит!

36 ответов36

42

Захватите Linux-Live-CD и используйте это.

29

Вы пробовали использовать версию названия с короткими именами? Например

ren whereh~1.ogg where.ogg

Если это единственный файл в текущей папке, начинающийся с первых нескольких букв, то используйте первые 6 букв имени (без пробелов), за которыми следует тильда (~), а затем 1.

24
  1. В Windows 7: запустите cmd.exe в режиме администратора.
  2. Перейдите в каталог с именами файлов.
  3. run: chkdsk /V /f [Мои испорченные файлы были на другом диске, отличном от диска ОС, поэтому он мог отключить его. Если это диск ОС, возможно, он должен выполнить этот этап при запуске.]
  4. Подождите (возможно, придется перезагрузить компьютер).

Как вы увидите, результатом было то, что chkdsk фактически удалил файлы для меня. Итак, если вы хотите сохранить файлы, я не знаю, что делать, но это наверняка избавит от файлов.

Результаты /Cmd Log:

E:\islag\Music\llb>dir
 Volume in drive E is FreeAgent Drive
 Volume Serial Number is 5038-892A

 Directory of E:\islag\Music\llb

02/02/2011  12:18 PM    <DIR>          .
02/02/2011  12:18 PM    <DIR>          ..
04/04/2010  02:19 PM         4,014,099 01 Los Lonely Boys - Se?orita - www.file2
4ever.com.mp3
04/04/2010  02:18 PM         3,125,942 12 Los Lonely Boys - La Contestaci?n - ww
w.file24ever.com.mp3
               2 File(s)      7,140,041 bytes
               2 Dir(s)  87,743,991,808 bytes free

E:\islag\Music\llb>chkdsk /V
The type of the file system is NTFS.
Volume label is FreeAgent Drive.

WARNING!  F parameter not specified.
Running CHKDSK in read-only mode.

CHKDSK is verifying files (stage 1 of 3)...
  231424 file records processed.
File verification completed.
  34 large file records processed.
  0 bad file records processed.
  0 EA records processed.
  0 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
18 percent complete. (29338 of 245164 index entries processed)
An invalid filename 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3 (3196
6) was found in directory 31962.
All filenames for File 31966 are invalid.
Minor file name errors were detected in file 31966.
An invalid filename 12 Los Lonely Boys - La Contestaci?n - www.file24ever.com.mp
3 (31973) was found in directory 31962.
All filenames for File 31973 are invalid.
Minor file name errors were detected in file 31973.
73 percent complete. (233817 of 245164 index entries processed)
Index entry 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3 in index $I30
 of file 31962 is incorrect.
Index entry 12 Los Lonely Boys - La Contestaci?n - www.file24ever.com.mp3 in ind
ex $I30 of file 31962 is incorrect.
  245164 index entries processed.
Index verification completed.

Errors found.  CHKDSK cannot continue in read-only mode.

E:\islag\Music\llb>dir
 Volume in drive E is FreeAgent Drive
 Volume Serial Number is 5038-892A

 Directory of E:\islag\Music\llb

02/02/2011  12:18 PM    <DIR>          .
02/02/2011  12:18 PM    <DIR>          ..
04/04/2010  02:19 PM         4,014,099 01 Los Lonely Boys - Se?orita - www.file2
4ever.com.mp3
04/04/2010  02:18 PM         3,125,942 12 Los Lonely Boys - La Contestaci?n - ww
w.file24ever.com.mp3
               2 File(s)      7,140,041 bytes
               2 Dir(s)  87,743,991,808 bytes free

E:\islag\Music\llb>chkdsk /V /f
The type of the file system is NTFS.
Cannot lock current drive.

Chkdsk cannot run because the volume is in use by another
process.  Chkdsk may run if this volume is dismounted first.
ALL OPENED HANDLES TO THIS VOLUME WOULD THEN BE INVALID.
Would you like to force a dismount on this volume? (Y/N) y
Volume dismounted.  All opened handles to this volume are now invalid.
Volume label is FreeAgent Drive.

CHKDSK is verifying files (stage 1 of 3)...
  231424 file records processed.
File verification completed.
  32 large file records processed.
  0 bad file records processed.
  0 EA records processed.
  0 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
18 percent complete. (29339 of 245164 index entries processed)
Deleted invalid filename 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3
(31966) in directory 31962.
File 31966 has been orphaned since all its filenames were invalid
Windows will recover the file in the orphan recovery phase.
Correcting minor file name errors in file 31966.
Deleted invalid filename 12 Los Lonely Boys - La Contestaci?n - www.file24ever.c
om.mp3 (31973) in directory 31962.
File 31973 has been orphaned since all its filenames were invalid
Windows will recover the file in the orphan recovery phase.
Correcting minor file name errors in file 31973.
73 percent complete. (233642 of 245164 index entries processed)
Deleting index entry 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3 in i
ndex $I30 of file 31962.
Deleting index entry 12 Los Lonely Boys - La Contestaci?n - www.file24ever.com.m
p3 in index $I30 of file 31962.
  245164 index entries processed.
Index verification completed.
CHKDSK is scanning unindexed files for reconnect to their original directory.
  2 unindexed files scanned.
CHKDSK is recovering remaining unindexed files.
  2 unindexed files recovered.
CHKDSK is verifying security descriptors (stage 3 of 3)...
  231424 file SDs/SIDs processed.
Cleaning up 41 unused index entries from index $SII of file 9.
Cleaning up 41 unused index entries from index $SDH of file 9.
Cleaning up 41 unused security descriptors.
Security descriptor verification completed.
  6871 data files processed.
CHKDSK is verifying Usn Journal...
  1116928 USN bytes processed.
Usn Journal verification completed.
Correcting errors in the master file table's (MFT) BITMAP attribute.
Windows has made corrections to the file system.

 244196000 KB total disk space.
 158175168 KB in 30003 files.
     22820 KB in 6873 indexes.
         0 KB in bad sectors.
    306168 KB in use by the system.
     65536 KB occupied by the log file.
  85691844 KB available on disk.

      4096 bytes in each allocation unit.
  61049000 total allocation units on disk.
  21422961 allocation units available on disk.

E:\islag\Music\llb>dir
 Volume in drive E is FreeAgent Drive
 Volume Serial Number is 5038-892A

 Directory of E:\islag\Music\llb

02/02/2011  12:18 PM    <DIR>          .
02/02/2011  12:18 PM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  87,743,979,520 bytes free

E:\islag\Music\llb>
11

Иногда chkdsk исправляет неправильные имена файлов. Вы получите сообщение об удалении файла, поскольку все имена файлов недействительны, а затем восстановите утерянный файл. Затем вы можете найти файл в C:\found.000\file0000.chk . Это эффективный способ удаления проблемных файлов, но не лучший способ сохранить их.

11

Попробуйте указать путь UNC (см. Имена файлов, пути и пространства имен). Это обходит все виды ограничений. Вы бы сделали это с помощью \\?\ синтаксис.

Например, если ваш файл был на вашем рабочем столе (а ваш диск Windows - C:), вы можете сделать

copy "\\?\C:\Users\codeLes\Desktop\Where Have All the Cowboys Gone?.ogg" "\\?\C:\Users\codeLes\Desktop\Where Have All the Cowboys Gone.ogg"

Примечание: Вы не можете использовать относительные пути с этим синтаксисом; Вы должны указать полный путь. И он не работает с командой ren , но работает с copy и move .

10

Я удалил упрямый файл, открыв 7zip, найдя его и переименовав в 7zip. Моя была песня, в конце которой был пробел.

7

Используйте Recuva. Он в первую очередь предназначен для восстановления удаленных файлов, но также имеет возможность включить в сканирование не удаленные файлы.

После запуска Recuva откажитесь от мастера и выберите нужный диск. Затем перейдите в "Параметры", найдите и проверьте параметр "Сканировать не удаленные файлы" и запустите сканирование. Через некоторое время будут показаны все файлы на диске (удалены или нет). Найдите ваши файлы с недопустимыми именами (имена уже зафиксированы в представлении), выберите их, щелкните правой кнопкой мыши и сохраните ("восстановить") где-нибудь.

Я только что сделал это (на Windows XP).

5

Инструмент Microsoft DISKEDIT.EXE - это низкоуровневый инструмент для непосредственного чтения и записи необработанных данных на диске. Вы должны иметь возможность загрузить кластер, содержащий запись каталога для этого файла, и просто изменить ошибочный файл?'персонажа к чему-то безобидному и запишите его обратно на диск.

Насколько я понимаю, средство Microsoft diskedit (не одноименное средство Norton Utilities, предназначенное только для томов FAT) в последний раз использовалось в Windows 2000 SP4. Но есть ссылка на него, которую можно найти здесь.

Чтобы найти нужный кластер, вы можете загрузить пробную версию DiskExplorer для NTFS.

Вы должны начать с File-> Drive ..., чтобы открыть диск, содержащий этот плохой файл. Выберите Goto-> Root Directory, чтобы получить представление каталога. Перейдите в каталог, содержащий ваш плохой файл, используя ссылки MFT #. Когда вы попадете туда, в верхней части окна появится что-то вроде: «MFT # x12345 DIR:« dirname », ... бла-бла-бла ... начиная с кластера x9302AE, ... бла-бла-бла"

Теперь перейдите к Microsoft diskedit. Сначала выполните File-> Open ... и укажите имя тома C: (если файл находится на вашем диске C:). Оставьте имя файла тома пустым. Возьмите этот начальный номер кластера и введите его в diskedit в разделе Read-> NTFS Clusters ...-> Starting Cluster (введите его как шестнадцатеричное число).

Теперь используйте клавиши со стрелками для прокрутки вниз к неправильному имени файла. Это в Unicode, так что вы будете искать что-то вроде «Где.Есть .Все.КовбоиУшли?... ogg "Наведите курсор на плохой символ" 3F "и напечатайте что-нибудь безопасное, например, 5F ('_'). Выберите Write-> It, чтобы записать его обратно на диск.

Есть еще одно место для удара (не уверен, что нужно одно или оба). Теперь, вернувшись в DiskExplorer, нажмите на Mft # для плохого файла. Вы увидите экран с изображением дерева слева, на котором написано "структуры". Нажмите на "Атрибуты" в дереве. Он покажет вам список атрибутов, один из которых будет что-то вроде $ 30 ... $ FILE_NAME. Итак, 30 долларов имеют имя файла. Нажмите на узел Body под узлом $ 30 в дереве структур. Выберите меню View-> как Hex. Несколько строк вниз, вы должны увидеть имя файла снова Где.Иметь… и т.д. В левой части экрана вы увидите столбец "Сектор", в котором показано, на какой сектор диска вы смотрите.

Вернемся к дискотеки. Сделайте Read-> Sectors ... и введите номер сектора из DiskExplorer. Как и раньше, прокрутите вниз и замените символ "3F" тем же символом, что и выше. Выберите Write-> It, чтобы записать его на диск.

Я сделал все это, и инструменты говорят мне, что я изменил характер, но исследователь не делает. Каталог должен быть где-то кэширован. После перезагрузки изменение становится видимым.

5

Попробуйте использовать сторонний инструмент, такой как инструмент Ken Rename :

Скриншот Кена Переименования

или переименовать мастера.

Вот список инструментов переименования файлов.

Я бы сам их протестировал, но у меня 64-битная Windows Vista; обработка файлов может отличаться.

Если эти инструменты не работают, вы можете попробовать Windows PowerShell. См. Переименование файлов в блоге Windows PowerShell.

4

Если у вас установлен Cygwin, он сможет позаботиться о файле. У меня возникла эта проблема только сейчас, и использование rm из Cygwin в оболочке bash позволило без проблем удалить файл, когда не помогло ни одно приложение Windows, в том числе Explorer, в том числе попытка использования спецификации файлов UNC с CMD.exe.

Я полагаю, что mv сделает это, если вы захотите сохранить файл.

Базовая установка Cygwin занимает всего несколько минут, и я всегда держу ее в руках, потому что есть так много хороших инструментов. Это проще, чем загружать Linux, даже используя live CD.

4
  • Если это более одного файла, создайте новый каталог с простым именем, например a .
  • Перемещайте один отдельный файл каждый раз в этот каталог.
  • В cmd.exe перейдите в новый каталог и введите следующее:

    ren *.ogg 1.ogg   
    

    Это для простоты. Затем вы можете переименовать его в XP, как вы хотите, например, 1.ogg туда, Where Have All the Cowboys Gone.ogg . ogg был просто примером, расширение может быть чем угодно.

4

Вы пытались переместить его в файл с правильным именем?

move "Where Have All the Cowboys Gone?.mp3" "Where Have All the Cowboys Gone.mp3"
3

Предполагая, что речь идет о томе FAT32 или NTFS, попробуйте запустить chkdsk. Это должно очистить «поврежденные» записи каталога, что (в данном случае) означало бы удаление?. Если это загрузочный том, вам может потребоваться перезагрузка, чтобы сделать это.

3

Это должно сработать (по крайней мере, для меня)

dir /X *cowboys*

Эта команда выведет что-то похожее на это:

08/11/2011  15:21    <DIR>          WH5E97~1     Where Have All the Cowboys Gone
?.ogg

Именно WH5E97~1 - это то, что вы ищете!
(Обратите внимание: такой код полностью придуман, но должен быть похож на тот, который вы найдете)

Зная это, простой

rename WH5E97~1 "Where Have All the Cowboys Gone.ogg"

должен сделать свое дело.

Надеюсь, поможет.

2

ты пытался:

type "Where*.ogg" > "Where.ogg"

может работать.

1

Большинство внутренних команд Microsoft контролируются при наличии explorer.exe .

Откройте диспетчер задач и изучите список текущих активных процессов. Вы найдете explorer.exe среди них. Щелкните правой кнопкой мыши и завершите / остановите / закройте explorer.exe . Пока не закрывайте диспетчер задач. Теперь перейдите к оскорбительному файлу с помощью вторичного файлового менеджера и попробуйте удалить или переименовать с использованием подстановочных знаков. Это, вероятно, будет успешным.

Теперь вернитесь в окно диспетчера задач и щелкните правой кнопкой мыши верхнюю строку с надписью «Приложения», затем выберите нижнюю кнопку с надписью «Новая задача». Введите explorer.exe . Исследователь обнаруживается снова, и оскорбительный файл больше не там.

1

Попробуйте cygwin переименовать файл:

команда будет: mv filename?.ogg filename.ogg

1

Попробуйте подстановочный знак на ходу -

move "Where Have All the Cowboys Gone*.mp3" "Where.mp3"

Вероятно, это ваш лучший выбор, если только один файл соответствует шаблону.

1

Если у вас есть WinRAR, упакуйте его в WinRAR, переименуйте в WinRAR, распакуйте его.

Или вы можете попробовать с VBScript, взять следующий скрипт и сохранить его в файл с расширением .vbs .

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

fso.MoveFile "Where Have All the Cowboys Gone?.ogg", "Where.ogg"
1

перетащите в новую папку, перейдите в командной строке к этой папке и введите

ren *.* test.ogg
1

Графический интерфейс WinRAR позволит вам переименовать файлы, даже не запаковав их в архив. Я проверил это в Windows 8.1, на очень длинном имени файла. Работал как шарм.

1

У меня также была похожая проблема с папкой. Имя папки было ".min." что обычно не допускается.

Переименовать не разрешено (нажмите для изображения)

Используя Winrar я смог решить эту проблему. То, что я сделал, было

  • щелкните правой кнопкой мыши на папке
  • выберите «Добавить в архив ...»'
  • выберите новое имя архива (без специальных символов)
  • в параметрах архивации выберите «Удалить файлы после архивации»
  • чем выбрать ОК

Добавить в архив ... (щелкните для изображения)

  • Затем я открыл файл .rar
  • и переименовал файл в

Это разрешено, так как Windows на самом деле не проверяет, что находится внутри файла .rar. Как только вы измените имя, распакуйте файл, и все готово.

Надеюсь, это поможет.

0

У меня была проблема с именем файла, у которого был завершающий пробел. Neighter Explorer и cmd.exe move смогли переименовать (или удалить) его.

Затем я использовал FAR Manager (far.exe в ConEmu). Это консольный клон Norton Comander, работающий на 64-битной Windows 10.

Благодаря этому я легко смог увидеть и изменить конечный бланк.

0

ОК, для меня сторонний инструмент isobuster из умных проектов хорошо работал с личной лицензией. Просто извлеките папку / файлы на диск Windows NTFS, и все символы, отличные от Windows, преобразуются в правильно сформированную папку Windows и имена файлов. Тьфу. :) Надеюсь, это поможет! Я буду удалять несоответствующие папки в следующий раз, когда использую свою систему lubuntu;) - Все это, ребята!

0

У меня была похожая проблема с 2-мя вложенными папками с подпапками. Я не мог ни переименовать, ни удалить некоторые файлы (я пробовал много способов). Наконец я нашел решение: Теракопия.

Установите его, щелкните правой кнопкой мыши папку или файл и выберите teracopy. Откроется Teracopy, затем просто нажмите « delete или « rename . Он переименует или удалит его.

Возможно, вы захотите попробовать.

0

Единственное, что мне помогло, это скачать LockHunter

убить процессы с помощью LockHunter, затем переименовать папку, однако LockHunter также имеет возможность переименовать папку.

0

Это не прямой ответ (например, как Windows может переименовать файл), но это работает для меня. Недопустимые файлы обычно находятся на внешнем диске, поэтому я подключаю внешний диск к своему планшету Android . Это позволяет мне переименовывать файл, который затем может быть прочитан Windows. Это касается специальных символов, но обычная проблема, которую я получаю, это имя файла, начинающееся или заканчивающееся пробелом или заканчивающееся символом '.'

Я попробовал один из сторонних инструментов FlexRenamer, но он все еще борется с вышеизложенным.

0

Я столкнулся с той же ситуацией.

Погуглив, я узнал, что нет нативного решения.

... и я использую в качестве оболочки TCC JPSoft, который также не может обрабатывать эти проклятые файлы.

Но я также узнал, что Unlocker Седрика Колломба (http://www.emptyloop.com/unlocker/) может справиться с ним.

И у меня это было в моей настройке. Кроме того, я очень рекомендую это.

Ну, по крайней мере, это решение не предполагает выхода из среды Windows ...

0

Я сталкивался с подобной ситуацией. Ни одно из опубликованных решений не помогло мне, но я наконец нашел простое решение:

  • Внешний инструмент не требуется
  • Не требуется знание какого-либо языка программирования или сценариев оболочки

Я просто скопировал файл (да, у меня все еще было возможно копирование) на флешку, переименовал его и снова поместил обратно! Я оставляю это другим, чтобы объяснить, почему это сработало.

0

Я не смог заставить ни одну из предложенных утилит Windows работать для меня, чтобы удалить "?"и" * "символы из имени файла.

Я подключил диск к Raspberry Pi и изменил имена файлов.

0

Используйте cmd.exe в этом каталоге с подстановочными знаками. Например:

ren "Where Have All the *.ogg" "Where Have All the Cowboys Gone.ogg"
0

Файловый менеджер 7-Zip (7-zip.org) переименует файлы и каталоги, которые XP не может. Просто использовал его, чтобы извлечь файл .tar и переименовать вложенный, незаконно названный файл .chm. Не требуется LiveCD.

Tschüß!

0

В большинстве случаев этот ответ бесполезен.
Меня одурачили имена файлов с символами, которые представлены в виде вопросительных знаков, хотя на самом деле это просто символы, которые не отображаются / не отображаются по умолчанию в M-шрифтах.

Должен ли я удалить этот пост? Это все еще может помочь некоторым людям ...


Попробуйте использовать cmd.exe, встроенный в завершение табуляции.

  1. dir /x не помогает (NTFS была создана без поддержки коротких имен файлов):

    dir
     Verzeichnis von C:\Temporal\_black
    05.10.2015  21:23    <DIR>          none\none         ? ?????????, ?????????
    
    dir /X
     Verzeichnis von C:\Temporal\_black
    05.10.2015  21:23    <DIR>                       none\none         ? ?????????, ?????????
    
  2. Попытка переименовать его, введя / copy'n'past название, не работает:

    C:\Temporal\_black> ren "? ?????????, ?????????" bart
    Syntaxfehler.
    
  3. Чтобы это сработало, вы должны использовать табуляцию. Просто перейдите к нужному каталогу в командной оболочке cmd, введите ren , нажмите клавишу tabulator и продолжайте нажимать ее, пока не появится «правильное» имя:

    C:\Temporal\_black>ren "? ?????????, ?????????"
    

    затем наберите остальное и нажмите ввод:

    C:\Temporal\_black>ren "? ?????????, ?????????" bart
    

    Вы будете вознаграждены этим:

    C:\Temporal\_black> dir
     Verzeichnis von C:\Temporal\_black
    05.10.2015  21:23    <DIR>          none\none         bart
    

Это довольно утомительно, но до сих пор это всегда работало для меня с файлами и каталогами (Windows 7 и 8).

Забавное примечание: команды ren в 2. и 3. идентичны, но они не будут работать без использования табуляции. И даже если вы использовали завершение табуляции, оно больше не будет работать, как только вы отредактируете имя после ren (например, удалите и добавьте знак вопроса).

0

У меня была точно такая же проблема с файлом, который я скачал. Я не мог переименовать или переместить его, ни в проводнике, ни в командной строке. Однако для меня сработало удалить его в Проводнике, а затем восстановить его из корзины. Я могу только предположить, что этот процесс "исправил" некоторые недопустимые символы, так как тогда я смог обработать его как обычный файл.

0

Я исправил FLAC-файл таким образом, используя базовую команду открытия Winamp, используя окно обозревателя программ. Когда я пошел в папку, у меня была опция переименования, в отличие от Проводника.

0

Извините, поздно, не уверен, как удалить один файл, но вы можете все файлы в каталоге. Просто создайте пустую папку и затем используйте robocopy, чтобы отразить эту новую пустую папку поверх той, которая содержит плохой файл. Это в основном отражает пустой список поверх того, что там было.

mkdir Empty
robocopy Empty <badfiledir> /mir

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .