4

В Windows 7 я не могу скопировать файл с | во имя. Выдает мне ошибку Can not find the file . У меня есть около 30 ГБ файлов, и все содержит этот символ. Любая идея, как я могу скопировать их в другой раздел NTFS?

4 ответа4

11

Командная строка - твой друг.

Откройте CMD и CD с расположением файлов.

Введите dir /X и это покажет вам старые имена DOS 8.3 с ~1 , ~2 т.д. Вместе с длинным именем файла.

Затем вы можете скопировать / переименовать, используя имена 8.3

Вы можете смешивать 8.3 и длинные имена файлов при переименовании:

ren THISIS~1.TXT "this is renamed.txt" будет работать

4

\\?\ prefix говорит Windows, что ваш путь в порядке, и вы не хотите, чтобы с ним что-то делали. Это значит, что это меньше прощает. Например, dir "\\?\C:" не работает. Правильный путь это dir "\\?\C:\" .

Это должно помочь вам обойти ограничение на использование | в именах файлов NTFS. Тем не менее, вы все равно должны заключать в кавычки имя файла, чтобы CMD.EXE не интерпретировал | ,

1

Недопустимые символы в имени файла вызовут проблемы скорее раньше, чем позже. Я бы порекомендовал вам переименовать все файлы, чтобы избежать дальнейших проблем.

Это должно работать (но это не проверено):

  1. Скачайте Ubuntu и запишите Live CD.

  2. Загрузитесь с Live CD.

  3. Откройте терминал, перейдите в папку, содержащую нечетные файлы и exexcute

    find . | grep "|" | awk '{ OLD=$0; gsub(/\|/, "_"); print "mv \"" OLD "\" \"" $0 "\"" }' | sh
    

Это должно заменить все | s с _ s.

0

Я собирался предложить то же самое, что и Деннис. Есть много приложений, доступных для окон , но я не знаю, насколько хорошо они будут переименовывать файлы с "недопустимым" символом.

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