Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: scup
Дата сообщения: 10.05.2006 13:23
имеется текстовый файлик, в нем 5 числовых столбцов. Нужно просуммировать все столбцы и результат вывести в другой файл примерно так " Сумма первого столбца = " и т. д.
Автор: volodyalipkin
Дата сообщения: 10.05.2006 21:22
В PATH прописан некий пакет, содержащий файл dir.exe. Переименовывать его или выкидывать пакет из PATH нельзя. Как в батнике/консоле вызвать встроенную команду dir?
Автор: scup
Дата сообщения: 10.05.2006 21:29
Не так понял, исправил

Добавлено:
volodyalipkin
Команда Path ; очищает путь поиска используемых файлов, ограничиваясь текущим каталогом. Может это поможет.
Автор: volodyalipkin
Дата сообщения: 10.05.2006 22:10
scup
Не годится. PATH трогать не хочется, ибо часть програм из пакета нужны. Можно убрать Path, а все команды из пакета вызывать с полным путём ... Но это скучно. Хотелось что-то типа ~dir всегда вызывает встроенную команду. Обидно, что если бы было наоборот, т.е. вызывалась бы внутренняя команда, то можно было бы вызывать dir.exe
Автор: jak_forest
Дата сообщения: 11.05.2006 08:17
volodyalipkin
создать батник типа такого (название _dir.cmd):

Код:
cd <где лежит dir.exe>
ren dir.exe dir.bak
dir %*
ren bak.exe dir.exe
Автор: scup
Дата сообщения: 11.05.2006 09:18
jak_forest Не работает, и на взгляд, суммироваться будут значения в строках, а не в столбцах.
Автор: FDK
Дата сообщения: 11.05.2006 10:58
Добрый день, не подскажете, каким образом можно получить IP-адрес для обработки (точнее интересует даже сеть, т.е. сеть одна - вася, сеть другая - не вася =))
Заранее спасибо.
Автор: jak_forest
Дата сообщения: 11.05.2006 11:30
scup
упсссссссссс. а так ?

Код:
set s1=0
set s2=0
set s3=0
set s4=0
set s5=0
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=1,2,3,4,5" %%i in (file.txt) do (
set /a s1=!s1! +%%i
set /a s2=!s2! +%%j
set /a s3=!s3! +%%k
set /a s4=!s4! +%%l
set /a s5=!s5! +%%m
)
echo %s1%
echo %s2%
echo %s3%
echo %s4%
echo %s5%
Автор: FDK
Дата сообщения: 11.05.2006 12:20
jak_forest
А что если 2 сетевых интерфейса?
Попробовал - в батнике не срабатывает.
Автор: Nicka_Grey
Дата сообщения: 11.05.2006 12:29
Такой вопрос, как решить задачу в батнике:
1)запустить одно приложение
2)подождать определенное время
3)запустить другое приложение не дожидаясь окончания работы первого
?
Автор: jak_forest
Дата сообщения: 11.05.2006 12:46
FDK
тогда будет два адреса выведены на экран Усиливай критерий выбора в findstr
Nicka_Grey
использовать start и sleep пробовал ?
Автор: Nicka_Grey
Дата сообщения: 11.05.2006 13:12
start как раз и юзаю, а вот про sleep не знаю
Какой синтаксис?
Автор: KapralBel
Дата сообщения: 11.05.2006 13:26
Nicka_Grey
Sleep /?

Код: Usage: C:\Program Files\Windows Resource Kits\Tools\sleep.EXE time-to-sleep-in-seconds
C:\Program Files\Windows Resource Kits\Tools\sleep.EXE [-m] time-to-sleep-in-milliseconds
C:\Program Files\Windows Resource Kits\Tools\sleep.EXE [-c] commited-memory ratio (1%-100%)
Автор: scup
Дата сообщения: 11.05.2006 14:05
jak_forest Ну почти, только числа то в столбцах дробные, типа 10,95 и т.д., а дробные числа не хочет суммировать. Как обойти?
Автор: jak_forest
Дата сообщения: 11.05.2006 14:12
scup
вроде бы командный процессор не понимает дробные числа (только целочисленная арифметика), если дробьная часть будет всегда, то можно попробовать поразбивать число на целую и дробную часть (for /f "tokens=1,2,3,4,5 delims=, " %%i....... переменные будут от i включая 10 букв лат. алфавита)и суммировать их по отдельности, а затем выделять целую часть и приибавлять ее к полученной ранее сумме. но это большо геморой, попробуй избавиться от дробей.
Автор: Nicka_Grey
Дата сообщения: 11.05.2006 14:56
KapralBel
Ага, отлично, тогда плз ткните линком на этот Windows Resource Kits
Автор: KapralBel
Дата сообщения: 11.05.2006 15:21
Nicka_Grey
http://download.microsoft.com/download/8/e/c/8ec3a7d8-05b4-440a-a71e-ca3ee25fe057/rktools.exe
12Мб
Автор: scup
Дата сообщения: 11.05.2006 15:32
А как сложить числа 08 и 09?
Автор: Nicka_Grey
Дата сообщения: 11.05.2006 15:32
KapralBel
Большой спасиб
Автор: KapralBel
Дата сообщения: 11.05.2006 15:39
scup
Убери лидирующь ноль
Автор: scup
Дата сообщения: 11.05.2006 16:10
KapralBel Его не можно убирать. Числа вида 123.08, 254.09. Они суммируются. Решил пойти по способу, предложенный jak_forest, но тут запара с этими числами. Вопрос все тот же, как сложить.

Автор: KapralBel
Дата сообщения: 11.05.2006 16:20
scup
Лидирующий ноль - указывает что числа в 8-чной системе счисления, поэтому 08 и 09 - не имеют смысла
Убери лидирующий ноль

Добавлено:
Сделай проверку на эти 2 числа и складывай их отдельно
Автор: scup
Дата сообщения: 11.05.2006 17:26
KapralBel Привести пример можешь? Дан файлик, в нем:

125.08
124.09
245.45

Нужно сложить.Я не силен в батниках, поэтому нужна помощь с примером
Автор: Yuk
Дата сообщения: 11.05.2006 18:26
scup
Я бы для таких целей awk использовал и не парился. Язык простейший, приспособлен именно для обработки табличной информации, и в батник вставляется без проблем.

Код: awk "{ sum += $1; } END { print sum; }" datafile
Автор: jak_forest
Дата сообщения: 12.05.2006 07:52
Народ! хотите разминку на пятницу ?
есть код [more]
Код: @echo off
echo %date% %time%
if #%1#==## goto cur
    set direct=%1%
    goto dir1
:cur
    set direct=.
:dir1
del /q tmp.txt 2>nul
del /q rez.tmp 2>nul
del /q dir.txt 2>nul

echo %direct%
echo %direct%> dir.txt
dir /s /b /ad %direct%>> dir.txt
for /f "tokens=*" %%i in (dir.txt) do (
    dir /a-d "%%i" | findstr /v /i "том volume дир dir file файл" > tmp.txt
    for /f "tokens=*" %%j in (tmp.txt) do echo %%j     %%i>> rez.tmp
)
rem del /q tmp.txt 2>nul
rem del /q dir.txt 2>nul
echo sorting
for /f "tokens=3,4,*" %%i in ('sort /r /+18 rez.tmp') do echo %%i        %%j --- %%k\
del /q rez.tmp 2>nul
echo %date% %time%
Автор: ymsssg
Дата сообщения: 18.05.2006 07:49
Народ, может кто подскажет как сделать так чтобы в батнике вычислялось значение по формуле (сегодняшняя дата минус один месяц)? Чтобы потом по этому значению можно было бы найти файл в текущем каталоге и удалить его.
Автор: jak_forest
Дата сообщения: 19.05.2006 07:24
ymsssg
просмотри эту тему полностью или здесь http://forum.ru-board.com/misc.cgi?action=printtopic&forum=62&topic=6156 уже это обсуждалось не один раз, как вычислять дату на месяц/день/неделю назад/вперед
Автор: bornbill
Дата сообщения: 21.05.2006 13:16
Привет великий ALL!
есть такая задачка как сформировать файлик со списком всех файлов которые были изменены,созданы за последние час,сутки,год.
заранее благодарен.
Автор: jak_forest
Дата сообщения: 22.05.2006 07:40
bornbill
используй утилитку forfiles. она очень легко тебе позволит найти все что надо. (в 2003 она уже есть, для остальных виндов поищи ее в ресурс ките)
Автор: vancio
Дата сообщения: 25.05.2006 18:37
нужно при помощи bat файла открыть три файла Excel сразу
и после этого закрыть окно cmd
как реализовать?

Добавлено:
один файл спокойно открывает:

Код: CHCP 1251
@Echo Off
"D:\тест 1.xls"

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

Предыдущая тема: Problemi s zagruzkoy XP!


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.