Мне очень жаль, если это было опубликовано в другом месте, я искал этот ответ в течение двух дней, и моя голова болит так сильно. У меня была старая резервная копия моего каталога игр, сделанная Windows 7 несколько лет назад, и я пытаюсь восстановить ее, но при попытке записи на диск она была испорчена. Windows стала странной и поместила "пробел" (не пространство слов, а пробел) перед расширением каждого файла (сотни тысяч файлов!) который теперь смешан с моей текущей директорией игры. Из-за пробела (это пробел, даже символ?), Мои игры не будут читать файлы.

Мне нужно искать файлы с пробелом (я не могу выполнить какой-либо специальный поиск, потому что я не знаю, как искать файлы, содержащие "пробел"), а затем, если возможно, исключить пробел в этой конкретной области всех затронутых файлов. (это должна быть конкретная область, так как во многих файлах есть место в них, но это было связано с их первоначальной формулировкой, то есть «ba room 56.xxx», которая стала «ba room 56 .xxx» после того, как Windows покончила с этим. ПРИМЕЧАНИЕ: пробел между 56 и "." в последнем примере.)

Пожалуйста помоги?

1 ответ1

0

обзор

  • Раздел 1 - Переименование файлов с помощью утилиты Bulk Rename.

  • Раздел 2 - Предложения по группировке файлов для упрощения обработки.

  • Раздел 3 - Поиск файлов с пробелами в их именах непосредственно перед расширением.

  • Раздел 4 - Экспорт списка этих файлов в виде текстового файла.


Использование утилиты Bulk Rename

Насколько я понимаю, у вас были небольшие проблемы с Bulk Rename Utility.

Предполагая, что ваше описание является точным (и есть только один или несколько пробелов в качестве последних символов перед расширением, например "ba room 56 .xxx"), вы можете просто использовать функцию Trim в Remove (5) не изменяя никаких параметров:

ех. Предварительный просмотр результатов

Удалить пробелы перед расширением - утилита массового переименования

Чтобы было ясно:

  • Выделите все элементы на основной панели с помощью Действия → Выбрать все ( Ctrl+A ).

  • Установите флажок « Trim в разделе « Remove (5) .

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

При желании вы можете сбросить все окно критериев переименования (если вы дурачились с другими вариантами или просто чувствовали себя осторожно) с помощью Действия → Сбросить все критерии переименования ( Ctrl+T ).

Включая подкаталоги

Утилита Bulk Rename обычно одновременно работает только с одной корневой папкой. Тем не менее, можно включить подкаталоги:

ех. Замены в подкаталогах

Замена подкаталога утилиты Bulk Rename

Вы можете включить эти папки, используя раздел Filters (12) главного окна. Просто отметьте Subfolders:

ех. Параметры фильтра

Массовое переименование служебных папок

Я также снял флажок Folders чтобы уменьшить визуальный беспорядок в окне предварительного просмотра (наше использование Trim , как уже отмечалось, никак не влияет на папки). После того, как вы выбрали правильные параметры фильтра, используйте Выбрать все , Trim и Переименовать, как указано выше.


Группировка файлов с пробелами

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

Однако, как вы указали, существует большое количество файлов, и Утилита Bulk Rename может столкнуться с трудностями при обработке всех их сразу. В качестве предложения, я мог бы рассмотреть возможность группировки файлов во временные каталоги по 50-100 файлов в каждом.


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


Пакетная сортировка файлов

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

  • Откройте новый документ в блокноте Windows и скопируйте следующие строки:

    if not exist %~dp0tempspace md %~dp0tempspace
    move /-y %~dp0"* .*" %~dp0tempspace
    pause
    
  • Выберите « Сохранить как» и в разделе « Save as type файла» выберите « All Files (*.*)

  • Измените расширение документа на .bat (пакетный файл Windows), набрав, например, findspaces.bat.

  • Нажмите Сохранить.

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

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

Пакетный файл Примечания

  • Этот пакетный файл не выполняет поиск в подкаталогах (как указано выше).

  • Он перемещает все соответствующие файлы в данный временный каталог (а не только в некоторые).

  • Вы можете заменить, например, tempspace на любое имя папки, которое вам нравится, но я бы избегал пробелов. Также обратите внимание на отсутствие пробела между %~dp0 и именем папки.

  • Вместо всех файлов с пробелами непосредственно перед именем ("* .*"), Вы можете использовать определенное расширение, если хотите (например, "* .xxx"). Опять же, учтите отсутствие пробела между %~dp0 и критериями поиска, а также пробел между первой звездочкой и точкой .

  • Хотя это не относится к сохранению новых файлов, вам может потребоваться скрыть расширения в Windows, чтобы изменить существующие текстовые файлы на расширение .bat .


Поиск файлов

Поскольку может быть полезно (но не обязательно) заранее знать, какие файлы содержат пробелы непосредственно перед расширением, вот мои мысли по этой теме ...

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

В качестве простой альтернативы я бы порекомендовал агента Ransack от Mythicsoft. Это бесплатная программа поиска файлов, которую вы можете скачать здесь. Обратите внимание, что в настоящее время вам не нужно беспокоиться о "регистрации" программы в качестве домашнего пользователя (она будет работать независимо).

После установки откройте Agent Ransack и введите в главном окне поиска следующее:

  • Введите * .* В поле File name чтобы найти все файлы с одним или несколькими начальными пробелами непосредственно перед расширением. Как и в приведенном выше пакетном файле, запомните пробел между первой звездочкой и точкой. Конечно, вы также можете указать расширение снова, например * .xxx* .

  • Убедитесь, что в поле « Look in отображается правильная корневая папка (например, папка с вашими игровыми файлами).

  • Если вы хотите сделать всесторонний поиск, вы должны проверить Search subfolders .

Нажмите кнопку « Start справа, чтобы начать поиск файлов. По завершении поиска вы должны увидеть результаты, подобные следующим:

ех. результаты поиска

Результаты поиска агента Ransack

В то время как мой пример изображения показывает только один каталог, ваши реальные результаты будут показывать полные пути, включая подкаталоги (при условии, что вы отметили Search subfolders).


Экспорт списка файлов

Чтобы получить список результатов поиска Agent Ransack в виде текстового файла, вы можете экспортировать их с помощью меню ФайлЭкспорт результатов ... или использовать значок Export results на панели инструментов Agent Ransack:

ех. Результаты экспорта

Значок результатов экспорта

В окне « Экспорт» обязательно сохраните результаты в виде текстового файла:

  • Выбор File .

  • Установка пути экспорта с соответствующим именем файла.

  • Выбор "Текстовый файл" для Format .

  • Обеспечение Save results for: All files помечены.

Нажмите кнопку « Экспорт» в правом нижнем углу после завершения.

ех. Окно экспорта

Диалог результатов экспорта

Очистка вещей с помощью Блокнота ++

К сожалению, кроме полного пути и имени файла, экспортируемый список содержит информацию, которая вам, вероятно, не нужна, например:

C:\path\to\gamefiles\ba room 56 .xxx 1 KB XXX File 2/11/2018 11:56:11 PM [...]

Чтобы сохранить информацию о пути / файле и отбросить остальные, мы можем использовать бесплатный текстовый редактор Notepad++ (не путать с обычным блокнотом Windows). Просто выберите 32-разрядный или 64-разрядный установщик на странице загрузки.

После установки откройте, например, файл SearchResults.txt в Notepad++. В меню выберите Поиск → Заменить ... ( Ctrl+H ), чтобы вызвать диалог замены .

Затем вы можете использовать регулярное выражение (специальный шаблон поиска), чтобы выделить информацию, которая вам не нужна. Введите в поле Find what : :

\s\d+\s[A-Z].+$

Оставьте поле Replace with : пустым. Убедитесь, что все параметры Match case , Wrap around и Regular expression отмечены. . matches newline опция новой строки совпадений должна быть снята:

ех. Блокнот ++ Заменить Диалог

Регулярное выражение результатов поиска Notepad++

Когда вы будете готовы, нажмите « Заменить все» справа. Затем вы можете сохранить отредактированный файл, предполагая, что все выглядит правильно.

Примечания по редактированию списка

  • Помните, что регулярное выражение, которое я предлагаю для удаления данных, может немного измениться, но оно должно работать правильно для текста, сгенерированного Agent Ransack. Дайте мне знать, если у вас возникнут какие-либо проблемы.

  • Этот отредактированный список может быть входом для некоторого другого сценария. Если вы хотите использовать его таким образом, возможно, будет лучше удалить все пустые строки. Вы можете сделать это вручную или Notepad++ может сделать это для вас с помощью Правка → Операции со строками → Удалить пустые строки.

  • Удаление пустых строк также позволяет избежать проблем с заключением в кавычки (обычно невидимых) строк, состоящих исключительно из пробелов (при условии, что вы хотите использовать регулярное выражение для цитирования строк ниже).

  • В большинстве случаев указывать пути в этом списке не обязательно (даже если пути в списке содержат пробелы). Но если вы по какой-то причине обнаружите, что вам нужен каждый путь в списке, указанном в кавычках, вы также можете использовать Notepad++. Просто снова откройте диалоговое окно « Заменить регулярными выражениями» (с теми же настройками, что и выше), но используйте (.+) В поле « Find what : и "\1" в поле « Replace with : :

Notepad++ Регулярное выражение в кавычках

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