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

Батник на поиск текста и переименования файла

20.06.2017, 11:40. Показов 6187. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем,
Прошу помощи в решении задачи.


Задача :
есть файлы появляющиеся в папке primer с разными именами C:\primer\12345.txt в середине первой строке которых есть слово name= после которого нужно скопировать 10 знаков ( пример name=1234567890) и переименовать файл 12345.txt в найденный результат и получится 1234567890.txt

Благодарю за любую помощь.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.06.2017, 11:40
Ответы с готовыми решениями:

Батник для переименования файла
Добрый день, помогите сделать батник. Батник должен переименовывать файл, чтобы имя не повторилось. Пример. есть файл 2354345.NK1...

Батник переименования
Помогите пожалуйста, мне нужен батник переименования. Есть папки в них от одной до восьми фотографий формата *.CR2 Нужно чтобы они имели...

Как написать батник для переименования архива?
Доброго времени суток! Ребята всю голову сломал. В общем имеем папку ну скажем c:\1 в неё периодически выгружаются файлы...

28
 Аватар для volodin661
6686 / 2278 / 347
Регистрация: 10.12.2013
Сообщений: 7,871
20.06.2017, 18:08
Цитата Сообщение от N11ghtmare Посмотреть сообщение
Благодарю за любую помощь.
Вот, извольте-с решение с помощью текстового редактора vim:
файл process.vim
Code
1
2
3
4
if search('name\s*=\s*','e') > 0
  normal w"a10yl
  call writefile(getline(1,"$"), @a . '.txt')
endif
вызов:
Windows Batch file
1
2
@vim -S process.vim +q! 12345.txt
::@del 12345.txt
0
0 / 0 / 1
Регистрация: 20.06.2017
Сообщений: 37
21.06.2017, 09:07  [ТС]
volodin661, Спасибо за ответ, но нужно штатными средствами windows, без стороннего ПО
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
21.06.2017, 10:35
Цитата Сообщение от N11ghtmare Посмотреть сообщение
файлы появляющиеся
по последнему созданному файлу произойдет переименование указанного файла
Windows Batch file
1
2
3
4
5
6
@echo off
set "zadan=C:\12345.txt"
set "Papka_f=C:\primer"
for /f "tokens=2 delims==" %%a in ('2^>nul dir /a-d/b/od/tc "%Papka_f%\*.txt"') do set "sname=%%~na"
ren "%zadan%" "%sname%.txt"
pause
0
0 / 0 / 1
Регистрация: 20.06.2017
Сообщений: 37
21.06.2017, 12:01  [ТС]
alpap, спасибо за ответ но в вашем примере батник обрабатывает только файл с именем 12345.txt а в папке так же появляются и с другим именем файлы пример -> 123456.txt, 123ab5.txt

так же сам файл переименовался просто в .txt не взяв из файла 10 знаков после слова имя ( пример name="1234567890" )
для упрощения или усложнения не знаю, эти цифры стоят в кавычках

Добавлено через 6 минут
я пытаюсь найти слово, получается, потом даже уже получается достать символы в кавычках но это все применяется только для файла 12345.txt как применить ко всем файлам txt в определенной папке?

делаю примерно так :

Windows Batch file
1
2
3
4
5
set slovo=abcd
set fileg=12345.txt
set filelog=result.log
echo false >%filelog%
for /f %%s in ('find "%slovo%" %fileg%') do @if "%%s"=="%slovo%" echo %slovo% >%filelog%
Добавлено через 14 минут
Рабочая версия

в этой версии уже беру информацию после слово ИмяФайлаНум="FDFGDDD-2324-12345"

как сделать чтобы проверялись все файлы в определенной папке C:\primer а не только конкретный файл 3.txt

Windows Batch file
1
2
3
4
5
6
7
@echo off
SetLocal EnableExtensions
 
set file=3.txt
set dest=out.txt
 
For /F tokens^=2^ delims^=^"^" %%? in ('find "ИмяФайлаНум=" ^< "%file%"') do echo %%?>> "%dest%"
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
21.06.2017, 12:52
N11ghtmare,
чтобы я ОЧЕНЬ СИЛЬНО не ругался:
- небольшой список имен появляющихся файлов
- принцип переименования каков (какие-то файлы допустим есть в папке А, появился файл в папке B, берем из него часть имени и переименовываем файл (КАКОЙ? Первый, последний ...) из папки А)
- если файл с таким именем уже есть - действия?
0
0 / 0 / 1
Регистрация: 20.06.2017
Сообщений: 37
21.06.2017, 14:36  [ТС]
alpap, пасиб за помощь постараюсь выразить мысль полностью =)

Есть Папка D:\PRIMER\ -> в нее прилетают абсолютно с разными именами файлы с одним расширением txt

в каждом файле txt внутри есть текст -> : всем привет как дела вот название ИмяФайлаНум="4566-f342-d56673"

нужно взять вот это 4566-f342-d56673 и переименовать файл в этот параметр.

пример D:\PRIMER\ <- в этой папке файлы 12345.txt, вася2345.txt, qwerty4333456.txt и другие с разными именами за ранее не известными

в каждом файле будет уникальное имя в содержании ИмяФайлаНум="4566-f342-d56673"

файл 12345.txt содержит -> всем привет как дела вот название ИмяФайлаНум="4566-f342-d56673"
файл вася2345.txt содержит ->всем привет как дела вот название ИмяФайлаНум="6644-2222-abcdef"
файл qwerty4333456.txt содержит-> всем привет как дела вот название ИмяФайлаНум="6644-1111-d56673"

в итоге файл 12345.txt должен переименоваться в 4566-f342-d56673.txt
файл файл вася2345.txt должен переименоваться в 6644-2222-abcdef.txt
файл qwerty4333456.txt должен переименоваться в 6644-1111-d56673.txt

вот так =)

Добавлено через 1 минуту
Цитата Сообщение от alpap Посмотреть сообщение
- если файл с таким именем уже есть - действия?
перезаписывать поверх такого же, но это исключено так как все файлы 99% уникальны
0
 Аватар для ZoOoO
226 / 211 / 70
Регистрация: 09.02.2016
Сообщений: 1,040
21.06.2017, 18:01
Лучший ответ Сообщение было отмечено N11ghtmare как решение

Решение

Батник поместить в папку с файлами
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
Setlocal EnableDelayedExpansion
for  %%q in (*.txt) do (
set "m=%%q"
call :1 "!m!"
set n=
)
exit /b
:1
set /a n+=1
for /f "tokens=%n% delims== " %%a in ('findstr /l  "name" "%~1"') do (
if "%%a"=="name" (set /a n+=1 && goto 2)
goto 1
)
:2
for /f "tokens=%n% delims== " %%b in ('findstr /l  "name" "%~1"') do (
set "a=%%b"
set a=!a:"=!
)
ren "!m!" "!a!.txt" 
exit /b
запись имени нового файла выглядит так : name="privet".Если у Вас не так,то надо name в коде батника земенить на свою строку ИмяФайлаНум.Если ИмяФайлаНум написано через пробел,то записать слово которое идет перед знаком ="4566-f342-d56673"(то есть:Имя Файла Нум="4566-f342-d56673",Вам надо Нум )
1
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
21.06.2017, 18:36
N11ghtmare,
ну сейчас понятно:
Windows Batch file
1
2
3
4
5
6
7
@echo off
for /f "delims=" %%a in ('2^>nul dir /a-d/b "*.txt"') do <"%%a" set /p s=& call :# "%%a" "%%s%%"
pause& exit
 
:#
 for /f "tokens=1* delims==" %%a in ("%~2") do ren "%~1" "%%~b%~x1"
exit /b
понимаете что bat в этой же папке, иначе прописать путь и переход в нужную папку (например cd /d "C:\Papka")
1
0 / 0 / 1
Регистрация: 20.06.2017
Сообщений: 37
22.06.2017, 15:34  [ТС]
ZoOoO, alpap, Большое огромное спасибо вам умные добрые люди =))))

все огонь все работает!

Добавлено через 6 часов 23 минуты
ZoOoO, еще одна проблемка, теперь тоже самое делаю с xml в кодировке UTF-8 и с русским языком беда, тоесть указываю Нум="312312" он файл переименовывает в .xml тоесть не находит этот НУМ, если ставишь на англ то все работает .... куда ковырять? уже с кодировками и так и сяк и никак.

батник сделал в UTF-8 тоже не ищет.
0
 Аватар для ZoOoO
226 / 211 / 70
Регистрация: 09.02.2016
Сообщений: 1,040
22.06.2017, 16:07
Батник надо сохранить в кодировке ,не помню какой.835 вроде.Тогда он будет русский понимать.
0
0 / 0 / 1
Регистрация: 20.06.2017
Сообщений: 37
22.06.2017, 17:26  [ТС]
ZoOoO,

Я уже и в UTF-8 и в UTF-8 без BOM и в ANSI и в 866 и 1251

835 не нашел

не рабоает блин, только меняю слово на англ и все сразу отрабатывает может хитрый xml?
<?xml version="1.0" encoding="UTF-8"?>
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
22.06.2017, 20:20
N11ghtmare,
мой код из п9 переименует невзирая на язык, вам же этот "Нум=" не нужен, какая вообще привязка к нему, если вы используете только то что после?
0
 Аватар для ZoOoO
226 / 211 / 70
Регистрация: 09.02.2016
Сообщений: 1,040
22.06.2017, 20:59
попробуй юатник сохранить в 852
0
0 / 0 / 1
Регистрация: 20.06.2017
Сообщений: 37
23.06.2017, 09:16  [ТС]
alpap, дело в том что этот Нум= может стоять в файле и в начале и в конце, поэтому и привязываюсь к нему.

Добавлено через 8 минут
Цитата Сообщение от ZoOoO Посмотреть сообщение
попробуй юатник сохранить в 852
и в ОЕМ 852 тоже не ищет ... может есть способ увидеть какие иероглифы видит батник в самом xml и искать не слово Нум= а эти сами иероглифы, так как во всех файлах слово одинаковое
пробую вообще во всяко разных кодировках ... пока безрезультатно
0
 Аватар для ZoOoO
226 / 211 / 70
Регистрация: 09.02.2016
Сообщений: 1,040
23.06.2017, 11:07
Я конечно не пробывал сам искать в xml,но если сначала скопировать текст батника в нотепад++,а потом выставить 852 кодировку,то русские буквы изменяться на иеролглифы.И их надо будет перезаписывать заново,что бы стало возможно их прочитать.Может быть ты где то в этом плане косячишь,я честно,не знаю.
0
0 / 0 / 1
Регистрация: 20.06.2017
Сообщений: 37
23.06.2017, 11:14  [ТС]
Цитата Сообщение от ZoOoO Посмотреть сообщение
Я конечно не пробывал сам искать в xml,но если сначала скопировать текст батника в нотепад++,а потом выставить 852 кодировку, то русские буквы изменяться на иеролглифы.И их надо будет перезаписывать заново, что бы стало возможно их прочитать. Может быть ты где то в этом плане косячишь,я честно,не знаю.
Да в том то и дело именно так и делаю, и именно notepad++. и чистый создавал туда копировал потом выставлял кодировку 852 и просто создавал чистый сразу ставил кодировку 852 а потом вставлял текст батника и менял иэроглефы на слово. и с иероглефами пробывал. не работает ...

даже не знаю куда уже ковырять. Притом так делал уже и с 1250 и 1251 utf8 utf8 - без ROM ANSI .... не работает.
0
 Аватар для ZoOoO
226 / 211 / 70
Регистрация: 09.02.2016
Сообщений: 1,040
23.06.2017, 11:21
Русский текст в консоли
866 кодировка оказывается.
0
2 / 2 / 0
Регистрация: 23.06.2017
Сообщений: 72
23.06.2017, 11:22
Если что то я с подобной проблемой сталкивался скачайте редактор notepad++, там есть подходящая кодировка. Как называется не помню, но там интуитивно понятно. Попробуйте у меня работало помню.
0
0 / 0 / 1
Регистрация: 20.06.2017
Сообщений: 37
23.06.2017, 11:32  [ТС]
Цитата Сообщение от ZoOoO Посмотреть сообщение
866 кодировка оказывается.
спасиб но уже пробовал

Цитата Сообщение от DarkChirik Посмотреть сообщение
Если что то я с подобной проблемой сталкивался скачайте редактор notepad++, там есть подходящая кодировка. Как называется не помню, но там интуитивно понятно. Попробуйте у меня работало помню.
Цитата Сообщение от N11ghtmare Посмотреть сообщение
Да в том то и дело именно так и делаю, и именно notepad++. и чистый......
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.06.2017, 11:32
Помогаю со студенческими работами здесь

Батник на поиск файла в сети
Подскажите, как оформить батник на поиск конкретного файла в сети в расшаренных папках и подпапках?

Батник переименования файлов и "SetLocal и расширенная обработка команд"
Здравствуйте. пишу код переименования файлов. не могу разобраться с &quot;SetLocal EnableExtensions EnableDelayedExpansion&quot;. ниже...

Переименования файла из контекстного меню
cmd /c (set /A NAME=&quot;%1_%RANDOM%&quot;) &amp; (move /Y &quot;%1&quot; &quot;%NAME%&quot;) Я хочу с помощью Контекстного Меню переименовать файл с другим именем...

Bat`ник для переименования файла
Не могу ни как решить проблему с выводом сообщения. Кто может помогите! Вот текст батника: Echo off if not exist %1 goto not_file ...

Защита файла от переименования
Visual Studio 2008, проект MFC. Есть ли какие-нибудь способы защитить файл от переименования, но чтобы была возможность удалить его?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru