it-swarm-ru.tech

Как заставить Windows переименовать файл с помощью специального символа?

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

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

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

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

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

Существует ли Windows способ принудительного переименования в этом случае?

Обновление

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

84
codeLes

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

42
salmonmoose

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

ren whereh~1.ogg where.ogg

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

29
GAThrawn
  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>
24
Aubrey Island

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

11
anon

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

11
gohop

Попробуйте указать путь 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.

11
Joshua

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

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

 enter image description here

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

7
Jan Lachnitt

Инструмент 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, поэтому вы будете искать что-то вроде "W.h.e.r.e. .H.a.v.e. .A.l.l. .T.h.e. .C.o.w.b.o.y.s. .G.o.n.e.? ... o.g.g." Наведите курсор на плохой символ «3F» и напечатайте что-нибудь безопасное, например 5F ('_'). Выберите Write-> It, чтобы записать его обратно на диск.

Есть еще одно место для удара (не уверен, что нужно одно или оба). Теперь, вернувшись в DiskExplorer, нажмите на Mft # для плохого файла. Вы увидите экран с изображением дерева слева, на котором написано «структуры». Нажмите на «Атрибуты» в дереве. Он покажет вам список атрибутов, одним из которых будет что-то вроде $ 30 ... $ FILE_NAME. Итак, 30 долларов имеют имя файла. Нажмите на узел Body под узлом $ 30 в дереве структур. Выберите меню View-> как Hex. Несколько строк вниз, вы должны увидеть имя файла снова W.h.e.r.e. .H.a.v.e ... и т.д. В левой части экрана вы увидите столбец Sector, который показывает, на какой сектор диска вы смотрите.

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

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

5
user14068

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

Screenshot of Ken Rename

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

enter image description here

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

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

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

5
braveterry

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

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

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

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

    ren *.ogg 1.ogg   
    

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

4
Rangel

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

move "Where Have All the Cowboys Gone?.mp3" "Where Have All the Cowboys Gone.mp3"
4
Tom Kidd

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

3
Michael Kohne

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

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"

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

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

3
unwiredbrain

ты пытался:

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

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

2
Atmocreations

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

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

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

1
Chief Suspect

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

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

1
Keck

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

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

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

1
Michael Kohne

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

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

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

fso.MoveFile "Where Have All the Cowboys Gone?.ogg", "Where.ogg"
1
Jhonny D. Cano -Leftware-

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

ren *.* test.ogg
1
William Hilsum

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

1
KellyRavenholm

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

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

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

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

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

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

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

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

1
Lefteris Eleftheriou

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

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

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

0
eckes

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

0
hemmlj67

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

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

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

0
Serkan Polat

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

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

0
Aleksandar Pavić

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

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

0
JohnnyBizzle

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

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

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

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

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

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

0
Marcus Vinicius Pompeu

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

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

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

0
David.

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

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

0
YetAnotherRandomUser

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

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

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

Tschüß!

0
monsignormoney

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

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


Попробуйте использовать встроенный в tab-файл 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. Чтобы это работало, вы должны использовать tab-завершение . Просто перейдите к нужному каталогу в командной консоли, введите ren, нажмите tabulator-key и продолжайте нажимать его, пока не появится «правильное» имя:

    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
Limer

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

0
Steve Smith

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

0
Freelance

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

mkdir Empty
robocopy Empty <badfiledir> /mir
0
JCollins