Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск чисел внутри файла

Ответить
Настройки темы
CMD/BAT - [решено] Поиск чисел внутри файла

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите пожалуйста, как организовать поиск чисел внутри файла, с последующим их умножением или сложением, например?

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

Код: Выделить весь код
set /p MIN1="Ot stoki pervogo: "
set /p MAX1="Do stroki pervogo: "
 
set /A CNT=1
setlocal enabledelayedexpansion
 
for /f "tokens=*" %%S in ('type %name%') do (
  if !CNT! GEQ %MIN1% (
     if !CNT! LEQ %MAX1% echo %%S>>1.txt
  )
  set /A CNT=!CNT!+1
)
А как достать цифры? Допустим они такие - 1 15 25 150 - а потом их сложить. Заранее благодарю.

Отправлено: 20:40, 18-11-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Hardip, а зачем отбирать строки?.. в этих строках только числа?.. можно так:
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion

set /p NAME="Is kakogo fayla  : "
set /p MIN1="Ot srtoki pervogo: "
set /p MAX1="Do stroki pervogo: "

set CNT=0
set SUM=0

for /f "tokens=*" %%S in ('type %NAME%') do (
  set /A CNT+=1
  if !CNT! GEQ %MIN1% if !CNT! LEQ %MAX1% (
    for %%A in (%%S) do set /A SUM+=%%S 2>nul
  )
)

set SUM
pause>nul

Отправлено: 03:37, 19-11-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


amel27 Да, в файле только цифры. Я приблизительно понимаю, то что вы сделали -
Код: Выделить весь код
SUM+=%%S
- заставляет каждый элемент складываться, при это не показывая ничего на экране.
Код: Выделить весь код
2>nul
Я прав? Решил почитать справку по команде for For, но ничего по команде /а не нашел(( Надо чтобы он каждое число проверял и если оно делится без остатка на 5, то echo - эти числа. На Delphi понимаю как
Код: Выделить весь код
for I:=1 to n do 
if I mod 2=0 then showmessage(I)
Приблизительно так.. А как тут?

Отправлено: 09:35, 19-11-2010 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Hardip:
заставляет каждый элемент складываться, при это не показывая ничего на экране »
не совсем так - команда сложения итак ничего не выводит на экран, но если вдруг попадется строка, не являющаяся числом будет выведена ошибка и операция не будет выполнена, вот эти сообщения об ошибках и подавляются (2 - ID потока ошибок)

Цитата Hardip:
Решил почитать справку по команде for For, но ничего по команде /а не нашел »
а причем тут FOR, смотрите в сторону "HELP SET"

Цитата Hardip:
чтобы он каждое число проверял и если оно делится без остатка на 5, то echo - эти числа »
Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion

set /p NAME="Is kakogo fayla  : "
set /p MIN1="Ot srtoki pervogo: "
set /p MAX1="Do stroki pervogo: "

set CNT=0

for /f "tokens=*" %%S in ('type %NAME%') do (
  set /A CNT+=1
  if !CNT! GEQ %MIN1% if !CNT! LEQ %MAX1% (
    for %%A in (%%S) do (
      set /A MOD=%%A %% 5
      if !MOD! equ 0 echo %%A
    )
  )
)

pause>nul
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:08, 19-11-2010 | #4


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Большое Вам спасибо! Всё именно так как нужно!
Цитата amel27:
а причем тут FOR, смотрите в сторону "HELP SET" »
Да на счёт SET, Вы были правы! Я сейчас смотрел..
Цитата amel27:
чтобы он каждое число проверял и если оно делится без остатка на 5, то echo - эти числа » »
Есть такой вопрос - хочу не просто получить результат, а ещё и научиться. Если есть какие-то примеры, которые можно было бы сделать и понять, ну например
Код: Выделить весь код
set /A MOD=%%A %% 5
откуда %% это? Я был бы очень благодарен!

Отправлено: 14:22, 19-11-2010 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Hardip:
откуда %% это? »
оператор % вычисляет остаток от деления, но поскольку символ "%" используется в CMD также для подстановки переменных (%VAR%), второй % выполняет функцию экрана
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:20, 19-11-2010 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск чисел внутри файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - поиск файла. rust-02 Скриптовые языки администрирования Windows 30 26-02-2022 08:25
CMD/BAT - [решено] Поиск и удаление файла UmbrellaMegaHack Скриптовые языки администрирования Windows 5 30-09-2017 02:25
Интерфейс - [решено] поиск внутри pdf файла ospa Microsoft Windows 7 8 08-11-2010 22:05
Поиск определённого файла на сайте Sfero_ID Хочу все знать 1 09-10-2010 08:24
CMD/BAT - [решено] поиск файла по маске evilfelix Скриптовые языки администрирования Windows 11 23-09-2010 16:26




 
Переход