В Windows 7 я не могу скопировать файл с | во имя. Выдает мне ошибку Can not find the file . У меня есть около 30 ГБ файлов, и все содержит этот символ. Любая идея, как я могу скопировать их в другой раздел NTFS?
4 ответа
Командная строка - твой друг.
Откройте CMD и CD с расположением файлов.
Введите dir /X и это покажет вам старые имена DOS 8.3 с ~1 , ~2 т.д. Вместе с длинным именем файла.
Затем вы можете скопировать / переименовать, используя имена 8.3
Вы можете смешивать 8.3 и длинные имена файлов при переименовании:
ren THISIS~1.TXT "this is renamed.txt" будет работать

\\?\ prefix говорит Windows, что ваш путь в порядке, и вы не хотите, чтобы с ним что-то делали. Это значит, что это меньше прощает. Например, dir "\\?\C:" не работает. Правильный путь это dir "\\?\C:\" .
Это должно помочь вам обойти ограничение на использование | в именах файлов NTFS. Тем не менее, вы все равно должны заключать в кавычки имя файла, чтобы CMD.EXE не интерпретировал | ,
Недопустимые символы в имени файла вызовут проблемы скорее раньше, чем позже. Я бы порекомендовал вам переименовать все файлы, чтобы избежать дальнейших проблем.
Это должно работать (но это не проверено):
Скачайте Ubuntu и запишите Live CD.
Загрузитесь с Live CD.
Откройте терминал, перейдите в папку, содержащую нечетные файлы и exexcute
find . | grep "|" | awk '{ OLD=$0; gsub(/\|/, "_"); print "mv \"" OLD "\" \"" $0 "\"" }' | sh
Это должно заменить все | s с _ s.
Я собирался предложить то же самое, что и Деннис. Есть много приложений, доступных для окон , но я не знаю, насколько хорошо они будут переименовывать файлы с "недопустимым" символом.
