Использование Windows Поиск файлов, содержащих «пробел»?

572
B00nD0ggie

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

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

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

0
Поиск с двойными кавычками. Biswapriyo 6 лет назад 2
Утилита массового переименования может быть другой вариант - http://www.bulkrenameutility.co.uk/Main_Intro.php Anaksunaman 6 лет назад 0
Можете ли вы получить текстовый пример? B00nD0ggie 6 лет назад 0
Кроме того, я попробовал Bulk Rename, но смутил меня при попытке удалить место в определенном месте. Кажется, он удалит только ВСЕ пробелы, а не там, где мне нужно удалить пространство. B00nD0ggie 6 лет назад 0
@ B00nD0ggie Я отправил ответ, используя утилиту массового переименования. Вы можете посмотреть. Anaksunaman 6 лет назад 0

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

0
Anaksunaman

обзор

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

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

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

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


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

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

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

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

Remove Spaces Before Extension - Bulk Rename Utility

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

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

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

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

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

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

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

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

Bulk Rename Utility Sub-directory Replacement

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

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

Bulk Rename Utility Folder Filters

Я также снял флажок, Foldersчтобы уменьшить визуальный беспорядок в окне предварительного просмотра (наше использование Trim, как уже отмечалось, никак не влияет на папки). После того, как вы выбрали соответствующие опции фильтра, используйте Select All, 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кнопку справа, чтобы начать поиск файлов. По завершении поиска вы должны увидеть результаты, подобные следующим:

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

Agent Ransack Search Results

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


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

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

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

Exports Results Icon

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

  • Выбор File.

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

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

  • Удостоверение Save results for: All filesотмечено.

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

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

Export Results Dialog

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

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

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++ Search Results Regular Expression

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

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

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

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

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

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

Notepad++ Quoted Line Regular Expression

Большое спасибо. Теперь моя другая проблема - возможность сгруппировать все файлы с проблемой свободного места. Опять же, проблема распространяется на несколько тысяч файлов. Смогло бы Массовое переименование найти эти файлы? Я не могу использовать функцию поиска Windows, я не знаю команду для поиска файлов с пробелом в определенной области. B00nD0ggie 6 лет назад 0
Пожалуйста. Простите за опоздание. =) Если вам все еще нужна помощь, я добавил дополнительную информацию относительно вашего комментария. Короче говоря, для вашего случая Bulk Rename Utility автоматически обнаружит файлы, которые нужно обрезать (удалить пробелы непосредственно перед расширением). Это может также включать подпапки. Поэтому поиск и группировка файлов не будут проблемой напрямую. Что может быть проблемой, так это объем. Для этого я расширил свой ответ небольшим пакетным скриптом, который должен помочь отсортировать файлы с пробелами непосредственно перед расширением. Но в настоящее время он работает только для одной папки за раз. Anaksunaman 6 лет назад 0

Похожие вопросы