В 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.
Я собирался предложить то же самое, что и Деннис. Есть много приложений, доступных для окон , но я не знаю, насколько хорошо они будут переименовывать файлы с "недопустимым" символом.