Массовое копирование файлов с компакт-диска и переименование запрещенных имен файлов по пути

784
Dan W

У меня есть старый компакт-диск с файлами Amiga, который я хочу скопировать на мой современный ПК с Windows 7.

Большинство файлов читаются нормально, но когда Windows находит файл с проблемным именем файла, она позволяет только пропустить этот файл. Он не будет автоматически копировать файл и одновременно удалять запрещенные символы (такие как «?» Или «|»).

Я хочу эти якобы «запрещенные» файлы. Как заставить Windows автоматически переименовывать их при копировании и продолжить с остальными?

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

  • FreeCommander XE (имеет собственную процедуру копирования, но все равно не работает)
  • XYplorer (имеет собственную подпрограмму копирования, но все равно не работает)
  • Двойной командир
  • Каталог Opus 11 64-битный. (Pro edition)
  • xplorer²
  • Q-Dir
  • Нереальный командир
  • NexusFile
  • Total Commander
  • Мой командир
  • Nomad.NET
  • Просто менеджер
5
Вы пытались использовать Linux live CD? harrymc 9 лет назад 0
Попробуйте Live CD с простым bash-скриптом, я могу попытаться найти тот, который будет автоматически изменять имена файлов, вам нужны реальные имена файлов, или это может быть: xxx1, xxx2? QuyNguyen2013 9 лет назад 0
Фактические имена файлов, если это возможно. Нет утилиты Windows? Я полагаю, если бы я пошел по пути эмуляции, я мог бы использовать WinUAE с некоторым усилием Dan W 9 лет назад 0
Я понятия не имею, будет ли это работать, но вы пробовали https://codesector.com/teracopy Touff 9 лет назад 0
Спасибо - попробовал Теракопию. Та же ошибка, что и в обычном режиме - он не может прочитать файл. Dan W 9 лет назад 0

4 ответа на вопрос

4
agtoever

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

Я не фанат продвижения коммерческого программного обеспечения здесь, но я использовал IsoBuster несколько раз для очень похожих проблем довольно успешно. Хорошая новость: у них есть (ограниченная функциональность) бесплатная версия, так что вы можете попробовать ее, прежде чем купить.

Вау, ваше предложение действительно работает. В конце концов, я решил ее, используя WinUAE, но для многих пользователей было бы непросто настроить WinUAE, установить Workbench, найти нужные ПЗУ и т. Д. Таким образом, ваш ответ будет тот, который получит награду! Dan W 9 лет назад 0
1
Nicole Hamilton

Try the cp utility I supply with my Hamilton C shell. (Full disclosure: I'm the author.) Internally, I used Microsoft's new long UNC format (using the \\?\ prefix) intended to allow access to files and directories with names containing arbitrary characters. I doubt many other vendors are using this yet. You can try this with the free demo version.

cp doesn't include an auto-renaming feature, so this part you'll have to do in one of a couple ways.

  1. You may be able to cp the entire directory onto your hard disk with the odd names, then mv things around to your liking. Create a directory first, then cp everything into the directory. If the experiment fails and you're stuck with some names you can't specify on the command line, you can rm -x the whole directory and start over.
  2. You could write a script that copies all the odd-named pieces individually, specifying how each piece is to be renamed on the the command line to cp. This script could be little more than a long list of cp commands you've edited, perhaps starting with a list of filenames generated by ls -r1.

Please let me know how it works out. You're welcome to contact me offline if I can be helpful.

Пробовал ваш первый вариант. Он скопирует другие файлы, но когда доберется до имени файла с «?» символ, он не может скопировать. Ошибка «Выходное имя файла недействительно». Поэтому я полагаю, что второй вариант тоже не сработает. Dan W 9 лет назад 0
Нет, второй должен работать. Что он говорит вам, так это то, что он может прочитать файл на компакт-диске, но Windows не позволит ему создать файл с таким именем на вашем жестком диске. Вы по-прежнему можете по одному указать, как вы хотите, чтобы каждый из этих других файлов переименовывался, когда вы копировали их в имена, совместимые с Windows. Попробуйте скопировать только один. Если это работает, следующим шагом является большой (но очень простой) скрипт, который делает ту же самую копию по одному для каждого файла с нечетным именем. Nicole Hamilton 9 лет назад 0
Только что увидел выше, что вы решили свою проблему. Повезло тебе. Nicole Hamilton 9 лет назад 0
Это решено, как вы знаете, но мне интересно посмотреть, сработает ли ваша идея. Но IIRC, я попробовал один файл с: cp ... и это не сработало. Это то, что вы думали, я должен попробовать? Dan W 9 лет назад 0
Да, сделайте один файл, но обязательно укажите легальное имя Windows в качестве имени файла назначения. Nicole Hamilton 9 лет назад 0
0
David

You should be able to do this from the command line in Windows fairly easily. Specifically renaming WHILE copying I am not sure. But, I have been able to move 'forbidden' files by changing or removing the file extention.Then copying them and adding the file extension back.

Open Command prompt. Navigate to the folder where your files are.

cd C:\File\Directory\With\Your\Files

ren *.txt *.doc

Better yet.Here is a link to something previously written: http://www.windows-commandline.com/rename-file-extensions-bulk/

Maybe this will help.

К сожалению, диск только для чтения, поэтому я не могу переименовать файлы на месте. Dan W 9 лет назад 0
0
WireGuy

Проверьте ответ на: Как я могу массово переименовать файлы?

Утилита Bulk Rename - лучший ответ, в котором есть опции копирования и регулярные выражения соответствия / замены.

Проверяя руководство, у них также есть опция «Удалить символы»:

Обратите внимание, что опция «Удалить символы» удаляет следующие символы (некоторые из которых недопустимы в любом случае в именах файлов): ! £ $% ^ & * () - _ = + [] {}; : '@ # ~,. /? \ | `¬ ¦ 
Компакт-диск доступен только для чтения, и Windows не может открыть файл с именем dodgy, чтобы скопировать его куда-либо еще. Dan W 9 лет назад 0