Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
iurum
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 30
1

Поиск заданного слова в файле и подстановка его в название файла

01.06.2015, 15:18. Просмотров 660. Ответов 6
Метки нет (Все метки)

Доброго времени суток!

Есть текстовый файл: log.txt
Нужно найти в нем строку: ComputerName = COMP1 и переименовать файл log.txt в файл comp1_date_time.txt , где date и time, соответственно время и дата на момент создания (переименования) файла. Значение COMP1 будет меняться..
Спасибо
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2015, 15:18
Ответы с готовыми решениями:

Реализовать поиск заданного файла в древе каталогов и поиск указанной информации в этом файле
Имеется много папок в каждой папке есть файл proc.txt, как можно по всем этим папкам пройтись и из...

Поиск слова в файле и его замена
Не могу никак решить одну проблему. Мне осталось в 3 классе написать следующее: - Программа просит...

Поиск слова в файле и его удаление
как находить нужное слово в файле и удалять его?

Поиск слова в файле и его замена другим
Требуется помощь в следующем есть файл с текстом в нем нужно найти слово и заменить другим а затем...

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

6
ComSpec
3409 / 1953 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
01.06.2015, 18:17 2
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
 
set "log=log.txt"
 
for /f "tokens=1* delims== " %%i in ('findstr/irc:"^ComputerName = .*$" "%log%"') do (
 for /f "tokens=1-6 delims=.-/:, " %%k in ("%date% %time%") do (
  set h=0%%n& call ren "%log%" "%%j_%%m.%%l.%%k_%%h:~1%%.%%o.%%p.txt"
 )
)
 
exit/b 0
0
iurum
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 30
03.06.2015, 09:19  [ТС] 3
ComSpec, скрипт отрабатывает, но ничего не происходит- может ошибка где?
0
ComSpec
3409 / 1953 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
03.06.2015, 09:40 4
Цитата Сообщение от iurum Посмотреть сообщение
может ошибка где?

Может быть... Вот здесь:
Цитата Сообщение от iurum Посмотреть сообщение
ComputerName = COMP1
.
0
iurum
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 30
03.06.2015, 11:09  [ТС] 5
Цитата Сообщение от ComSpec Посмотреть сообщение
Может быть... Вот здесь:
Сообщение от iurum
ComputerName = COMP1
Ну, здесь все правильно - ComputerName = ****** , а название в логе меняется как и говорил: COMP2, COMPUTER3, Terrminal06 ...

Добавлено через 1 час 12 минут
ComSpec, разобрался я... В строке, содержащей ComputerName = **** есть еще символы, т.е. выглядит она целиком так:
Property(S): ComputerName = COMP1
Без вот этого Property(S): - все замечательно работает
Можно добавить в скрипт, чтобы игнорировало все, что до ComputerName ? И если можно, чтобы переименовывало файл в нижнем регистре
0
ComSpec
3409 / 1953 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
03.06.2015, 13:35 6
Лучший ответ Сообщение было отмечено iurum как решение

Решение

Цитата Сообщение от iurum Посмотреть сообщение
ComSpec, разобрался я... В строке, содержащей ComputerName = **** есть еще символы, т.е. выглядит она целиком так:
Property(S): ComputerName = COMP1
Без вот этого Property(S): - все замечательно работает
Можно добавить в скрипт, чтобы игнорировало все, что до ComputerName ?


Надеюсь, что на сей раз строка приведена верно.

Код пакетного файла:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
 
set "log=log.txt"
 
for /f "tokens=2* delims== " %%i in ('findstr/irc:"^[^ ].* ComputerName = .*$" "%log%"') do (
 for /f "tokens=1-6 delims=.-/:, " %%k in ("%date% %time%") do (
  set h=0%%n& call ren "%log%" "%%j_%%m.%%l.%%k_%%h:~1%%.%%o.%%p.txt"
 )
)
 
exit/b 0
.




Цитата Сообщение от iurum Посмотреть сообщение
И если можно, чтобы переименовывало файл в нижнем регистре


Можно.

Есть такой трюк с созданием временного файла и использованием команды "DIR" с ключом "/L", переводящий верхний регистр в нижний (нельзя только использовать символы, которые исключены для имён файлов).

Полный код пакетного файла:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
 
set "log=log.txt"
 
for /f "tokens=2* delims== " %%i in ('findstr/irc:"^[^ ].* ComputerName = .*$" "%log%"') do (
 for /f "delims=" %%k in ('rem:^>"%%j"^& dir/b/l "%%j"^& del "%%j"') do (
  for /f "tokens=1-6 delims=.-/:, " %%l in ("%date% %time%") do (
   set h=0%%o& call ren "%log%" "%%k_%%n.%%m.%%l_%%h:~1%%.%%p.%%q.txt"
  )
 )
)
 
exit/b 0
.
1
iurum
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 30
03.06.2015, 13:41  [ТС] 7
ComSpec, великолепно! Огромный респект!
0
03.06.2015, 13:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2015, 13:41

Поиск слова в файле, с файла в переменные
Доброго времени суток форумчанен! Недавно написал код который ищет введенное пользователем слово в...

Как реализовать поиск в текстовом файле слова, и вывод его перевода?
Проблема в том, что не знаю, как реализовать поиск в текстовом файле слова и вывод его перевода....

Поиск в файле первого слова, введённого пользователем и замена его на второе
Помогите написать программу Заранее спасибо:D Задание: Имеется файл inform.txt. В нём...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru