Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Задача по поиску файлов


Рекомендуемые сообщения

У меня возник вопрос примерно следующего содержания: как можно найти на компьютере использующем XP, файлы, в именах которых содержатся два (три, или четыре, или больше) пробела подряд? А также, как найти файлы, чьё имя заканчивается на пробел, или начинается на него?

Ссылка на комментарий
Поделиться на другие сайты

Реализация такого поиска возможна при помощи total comander[a]. В его встроенном поисковике следует набрать нужное колличество пробелов (только их (!) - иначе он найдет абсолютно все файлы в заданом секторе поиска).

Необходимую (и дополнительную) информацию о методах поиска total comander[a] можно найти в меню поиска.

Ссылка на комментарий
Поделиться на другие сайты

А также, как найти файлы, чьё имя заканчивается на пробел, или начинается на него?

Интересно, а как вы собираетесь создать такой файл? Windows по-умолчанию уберет пробелы в начале и конце файла...

что касаемо остального - либо стандартный for, либо более удобный forfiles (внешняя утилита) помогут (как пример, команда forfiles /M "* *" как раз выведет список файлов и папок текущего каталога с 2 пробелами в имени, более подробно: forfiles /?)

Ссылка на комментарий
Поделиться на другие сайты

Maikll, вынужден не согласится....

ДА винда уберает пробел с начала и с конца, но если файл содержит с начала имени или в конце более одного пробела пробелы остаются (правда по одному убираются)...

К примеру: можно создать файл имя которого состоит из 3 пробелов или так: " a b .txt"

Как подтверждение моих слов...Вот

Ссылка на комментарий
Поделиться на другие сайты

ДА винда уберает пробел с начала и с конца, но если файл содержит с начала имени или в конце более одного пробела пробелы остаются (правда по одному убираются)...

К примеру: можно создать файл имя которого состоит из 3 пробелов или так: " a b .txt"

В начале имени средствами total comander или иного файлового менеджера - вполне возможно, explorer-oм - нет.

Добавить пробелы в конец файла после расширения - нельзя по определению.

Ссылка на комментарий
Поделиться на другие сайты

В начале имени средствами total comander или иного файлового менеджера - вполне возможно, explorer-oм - нет.

Добавить пробелы в конец файла после расширения - нельзя по определению.

Согласен, но к примеру некоторые издательские программы позволят сохранять файл с подобным- пробельным именем. Как не странно, но подобные имена часто используются в издательстве (очень много графических файлов разных рангов - дизанер или верстальщик пользуется для обозначения "клипарта"- один пробел, "на утверждение" - 2 пробела, "спуск на ФНА" - без пробела)

Например этот файл...

Ссылка на комментарий
Поделиться на другие сайты

файл имя которого состоит из 3 пробелов или так: " a b .txt"
Это не файл с именем из трех пробелов, это файл с тремя пробелами в имени. Имя файла только с пробелами создать не удастся, разве что можно использовать символы, выглядящие как пробелы, например, Alt+255 (на малой клавиатуре). Создать файл с пробелами в начале имени можно командой copy, например,
copy nul "	.   a"

но в конце имени пробелы все равно самоликвидируются.

P.S. Имеется в виду "в конце полного имени", т.е. после последнего непробела в расширении.

Ссылка на комментарий
Поделиться на другие сайты

...можно использовать символы, выглядящие как пробелы, например, Alt+255 (на малой клавиатуре)...
Не поспоришь... но существование таких файлов возможно... а значит и поиск нужных "пробельных" файлов то же возможен (это я о теме :bye1: )...
Оффтоп: С "этими"файлами сталкиваюсь довольно часто на работе... до меня на тепершнем моем компе работал товарищ очень любивший такие изыскания. Самое печальное заключается в отсчитывании пробелов для определения ранга файла... :blushing: "
Ссылка на комментарий
Поделиться на другие сайты

ДА винда уберает пробел с начала и с конца, но если файл содержит с начала имени или в конце более одного пробела пробелы остаются (правда по одному убираются)...

Создал для пробы текстовый файл и вставил в конец (до расширения) пробелы (5 шт.)... Ничего винда не убрала. Ни одного пробела.

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

P.S. Я что-то не пойму в чем загвоздка?

P.S.2. Попробовал усложнить задачу. Создал файл 1 2 3.txt Ввел в поиск: 1 2 3 - выдал только этот файл. ввел 123 - ничего не выдал.

В ЧЕМ ВАША ПРОБЛЕММА? Обычный виндовский поиск прекрасно справляется.

Изменено пользователем matva
Ссылка на комментарий
Поделиться на другие сайты

Ну хорошо, Total Commander ищет пробелы.

Но вот пробелы в конце имени файлов (до точки, отделяющей разрешение) как искать (или в начале имени - без разницы)? Не обязательно два или больше пробелов, важно чтобы они были в конце или в начале имени.

Ссылка на комментарий
Поделиться на другие сайты

Еще раз повторю: В чем Ваша проблемма? Ищите по другим знакам! Искать только по пробелам - глупо (ИХМО!).

P.S. А тех кто написал такие программы, которые создают файлы с N-ми пробелами - :)

Ссылка на комментарий
Поделиться на другие сайты

Все таки нашел как это сделать в totalcmd....

Поиск файлов имя которого начинается или заканчивается на пробел делается так: \s*\s.*, где "\s" - указатель регулярного выражения пробела...

Пользуйтесь :)

Ссылка на комментарий
Поделиться на другие сайты

Может я чего не так делаю, но на указанное выражение, Total Commander выдаёт не те файлы. Точно это выражение?

\s*\s.*

Может галку надо было поставить где-то? В любом случае результат, чего-то, не совсем тот.

Есть ещё тэг \b указывающий на границу (т.е. на начало или конец), но он странно, тоже не работает.

Ссылка на комментарий
Поделиться на другие сайты

\s*\s.*, где "\s" - указатель регулярного выражения пробела...
Я с регулярными выражениями в Total Commander не разбирался, но это, по объяснению, не имена ли с двумя пробелами - в начале имени и перед расширением?

Пути решения без каких-то исключений не видно или над этим надо сидеть и проверять варианты, но в командной строке

dir /b/s " *" | find "."

найдет все файлы, имена которых начинаются с пробела и имеют какое-нибудь расширение. Поиск начнется с текущего каталога, а чтобы шел с корневого каталога диска, после dir надо вставить \ (впрочем, об этом навряд ли стоит упоминать, не новички). А

dir /b/s "* .*" | find "."

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

P.S. Впрочем, от имен каталогов с точками внутри, видимо, можно отделаться, добавив в конце команд еще один фильтр | find /v ">"

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Может галку надо было поставить где-то? В любом случае результат, чего-то, не совсем тот.
Прошу прощения, да, забыл указать, что в меню поиска totalcmd надо поствить галку "регулярные выражения"

Для наглядности...

serch93910.jpg

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...