Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/40: Рейтинг темы: голосов - 40, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 3

CMD Поиск текста в файле + Копирование + переименовывание

12.03.2015, 08:12. Показов 7984. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите написать .bat с параметрами выполнения поиска слова в файле, если есть то скопировать и переименовать в 123123123.123. Например так: есть созданный файл 123.txt он содержит искомое слово допустим "Маша", если есть совпадение то скопировать и переименовать файл в 123123.123, или если он содержит слово "Паша", то скопировать и переименовать в 321321.321, если совпадений нет, то выдать ошибку! Помогите пожалуйста!!!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.03.2015, 08:12
Ответы с готовыми решениями:

Поиск текста в файле и копирование его в другой
Здравствуйте. Может кто нибудь подсказать как это сделать? Нужно найти в текстовом файле A все слова с буквой "Й" ...

Копирование и переименовывание
Добрый вечер. Прошу помощи при создании кода. Необходимо файл 1.txt из папки с:\1\ скопировать в папку c:\2\ но с другим именем. Можно...

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

5
4 / 4 / 2
Регистрация: 24.12.2014
Сообщений: 13
12.03.2015, 12:03
Bash
1
@SetLocal enabledelayedexpansion &set/p s="Ищем: " &&set/p f="В файле: " &&set/p sv="Сохраняем как: " &&find/i "!s!"<"!f!">nul &&copy "!f!" "!sv!"||echo Ошибка &pause
0
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 3
12.03.2015, 12:30  [ТС]
Bash
1
2
3
4
5
6
7
8
9
10
@echo on
chcp 1251 > NUL
SetLocal EnableExtensions
set src=C:\Входящие
set mask=*.txt
set word=привет
set dest=C:\Исходящие
chcp 866 > NUL
for /f "tokens=1" %%a in ('findstr /irc:%word% "%src%\%mask%"') do (copy /y "%%~a" "%dest%\" && rename "%dest%\%mask%" 123123.1 )
pause
Попытка слепить самому где ошибка???

Добавлено через 14 минут
Спасибо! Но к сожалению не работает, выдает "ошибку" или через CMD, пишет искомое слово и ошибку!
0
 Аватар для ComSpec
3463 / 2001 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
12.03.2015, 15:53
Лучший ответ Сообщение было отмечено ETPentinger как решение

Решение

Цитата Сообщение от ETPentinger Посмотреть сообщение
где ошибка???



1) Чтобы команда "findstr" выводила только файлы, в которых есть искомое слово, нужно использовать параметр "m".

2) В команде "findstr" надо заменить параметр "r" на параметр "l", так как Вы не используете регулярные выражения.

3) Команда "copy" сама скопирует файл в файл с новым именем, поэтому нет необходимости использовать команду "rename".

4) Разные версии утилиты "findstr.exe" по-разному работают с кириллицей, и при написании кода надо исходить из особенностей Вашей версии (что, конечно, непросто).



Исходя из вышеизложенного и добавив ещё некоторые поправки, могу предложить следующий код, который с моей версией "findstr.exe" работает великолепно:


Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
 
set "word=привет"
 
>nul chcp 1251
 
set "src=C:\Входящие"
set "mask=*.txt"
set "dest=C:\Исходящие"
 
>nul chcp 866
 
(
for /f "delims=" %%a in ('findstr /ilmc:"%word%" "%src%\%mask%"') do (
 copy /y "%%a" "%dest%\123123.1"
)
)|| echo The necessary files are not found.
 
pause

.



Ещё учтите, что код предназначен для копирования одного файла с найденым совпаденем. Если таких файлов будет больше, то все следующие файлы будут перезаписываться в файл "123123.1".
3
0 / 0 / 0
Регистрация: 11.03.2015
Сообщений: 3
12.03.2015, 17:13  [ТС]
ComSpec, Спасибо большое, за ответ, очень познавательно! Буду изучать справку cmd дальше!
0
4 / 4 / 2
Регистрация: 24.12.2014
Сообщений: 13
13.03.2015, 15:10
Цитата Сообщение от ETPentinger Посмотреть сообщение
Спасибо! Но к сожалению не работает, выдает "ошибку" или через CMD, пишет искомое слово и ошибку!
Когда вводишь слово поиска в консоли оно по умолчанию в кодировке 866, поэтому находит это слово с файлах с такой же кодировкой

Цитата Сообщение от ComSpec Посмотреть сообщение
могу предложить следующий код, который с моей версией "findstr.exe" работает великолепно:
ищет в файлах такой же кодировке как и сам батник
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.03.2015, 15:10
Помогаю со студенческими работами здесь

Копирование удаление и переименовывание exe в одной папке
Здравствуйте! Интересует следующая ситуация: Допустим есть папка C:\papka\ в которой лежит 1 оригинальный файл с расширением .exe, его...

Поиск строк в txt файле и копирование в другой упорядоченно
Ребята образовалась такая проблема, так как я в этом не силён:(. Суть в том что заголовки(object_0,object_0,object_2) в txt(Визу указал...

Поиск в dat файле нужного числа и его копирование в Edit
Доброго вечера форумчани!У меня такая ситуация...есть dat файл, надо по сочитанию символов, допустим ХР1, найти строку....далее в этой...

Поиск текста в файле
Добрый вечер всем. Сижу не пойму, что делаю не так. Месяц назад делал набросок, вроде все работало, сейчас сижу вспоминаю, ищет, но не все....

Поиск текста в файле
Добрый день. задача: находить в текстовом файле введенный с клавиатуры текст и в дальнейшем копировать строку в которой нашлось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru