| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [BAT, командный файл]Поиск в нескольких txt файлах |
| Автор: Alenka 4.6.2007, 14:24 | ||||
| Есть вот такая вот задачка: Написать командный файл для поиска строки в нескольких текстовых файлах (использовать команду FIND). Строка для поиска, а также имена файлов задаются в командной строке. В командном файле использовать не более двух формальных параметров: %1 %2. Результаты по выбору пользователя вывести на экран или в файл RESULT.TXT (команда CHOICE). Проверить существование каждого файла. Решение получается только такое:
Как вы наверное уже поняли bat сделан только для поиска в одном файле... Как сделать в нескольких я не знаю... Cделать find с for не выходит... Параметров можно сделать только два (shift как я поняла тут тоже не сработает)... Что делать ума не приложу... Мальчики, кто-нибудь помогите... Большое пожалуйста !!! :( |
| Автор: S.A.G. 4.6.2007, 15:00 | ||
В условии сказано что нужно искать в нескольких файлах. Но там же написано что параметров должно быть два, т.е. имя файла и строка для поиска. Если параметров может быть больше то, просто сделайте тоже самое и со всеми другими параметрами содержащими название файла. Тоесть так:
Если параметров может быть только два то ваша задача решена. Или я неправильно понял условие. |
| Автор: Alenka 4.6.2007, 19:32 | ||||
Нет к сожалению так не получится: Во-первых %3 это уже третий формальный параметр (что противоречит условию) Во-вторых ищем мы одну и ту же строку (параметр %2) в нескольких txt файлах (параметр %1) и файлов этих, должна быть возможность, указать любое количество (так параметров не хватит, и shift тут не поможет)... Вся проблема в том что надо как-то уместить в одном формальном параметре %1 список из нескольких txt фалов и затем этот список передать в for find... |
| Автор: apook 5.6.2007, 10:15 | ||
| Вариантов может быть куча, один из нх апример передать с параметром директорий где эти файлы лежат в батнике пишешь
запускаешь test.bat . произведется поиск в текущем директории всех файлов с расширением txt и если есть строка ABCDEF она выведется |
| Автор: Alenka 5.6.2007, 15:35 |
| Миленькие ну не могу я задавать в командной строке ничего кроме ИСКОМОЙ СТРОКИ и ИМЕН TXT ФАЙЛОВ (которых может быть любое количество)... Не могу я задавать никаких директорий (т.к. противоречит заданию + искать надо не во всех txt а в указанных в командной строке)... Я не могу понять как засунуть в %1 скажем 1.txt 2.txt 3.txt и передать их в for find... Может есть какие-нибудь шаблоны записи, о которых я не знала? |
| Автор: apook 6.6.2007, 01:30 | ||
Забыл добавить-Если хочешь чтоб параметр командной строки содержал пробелы заключи его в кавычки напр: "1.txt 2.txt 3.txt 4.txt" Это относится не только к батникам но и к eкзешникам и вообще это общепринятое правило. |
| Автор: Alenka 6.6.2007, 07:52 |
| OK пасибо! Буду пробовать! |