Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 10

Автор: bomzzz
Дата сообщения: 30.01.2011 22:44
aidarsimon
ой я так с ходу не могу - я редко батниками балуюсь.
надо наверно получить все подразделы этого раздела, и в каждом получить параметр IPAddress. потом его сравнивать. но тоже правило не абсолютное. навприемр если бы у меня было обе сетевые карты воткнуты в писиай, в обоих бы апи начинался на 192.168
Автор: lorents
Дата сообщения: 31.01.2011 00:04
Добрый вечер!
подскажите, пожалуйста, как можно объединить несколько файлов в один, если они лечат в одной папке?
Просто не очень удобно писать

Код: copy /b "файл1" + "файл2" + ... + "файлN" "файл"
Автор: bomzzz
Дата сообщения: 31.01.2011 00:06
ну если они все ткст можно просто так напейсать вместо плюсикоф *.txt

разделить конечно можно, только как ты себе это представляешь, что будет меткой деления?
Автор: BVV63
Дата сообщения: 31.01.2011 05:46
lorents

Цитата:
как можно объединить несколько файлов в один, если они лечат в одной папке?

Например, так:

Код: PushD "<Полное_имя_папки>"
CD . > "<Имя_конечного_файла>"
For %%0 In (*.*) Do Copy /B "<Имя_конечного_файла>"+"%%0"
PopD
Автор: lorents
Дата сообщения: 31.01.2011 08:39
bomzzz

Цитата:
разделить конечно можно, только как ты себе это представляешь, что будет меткой деления?

я вот тоже думаю, что будет меткой. Хорошо сейчас этот вопрос стоит теоретически.

BVV63
Спасибо за идею.
Автор: Jin32
Дата сообщения: 31.01.2011 18:40
wolf0425
Неа, не работает, пишет только что "Не удается найти указанный файл." и больше ничего не происходит, видимо какая нибудь маленькая ошибка, но сам не исправлю так как слабо понимаю че батник делает.

01MDM
Работает но немного не то что хотелось бы, важны не только цифры в рамках но и сами рамки из решеток###, нужная программа обрабатывает только то что в рамке. Еще есть строчки вида
========== RAPS001#66666.QR ========== из них получаются файлы RAPS001 и без расширения вместо RAPS001#66666.QR

Rush
Вот твой работает на 100% тоже не понимаю как, но имея готовый код со временем разберусь что какая команда делает, это не самому писать
Вообще всем спасибо за участие, со временем разберусь с каждым кодом, для общего развития.
Автор: bomzzz
Дата сообщения: 31.01.2011 18:47
lorents
можно метку деления влепить в объединенный файл, только надо знать что там внутри файлов, что может бюыть делителем. в крайнем случае можно записать точные размеры суммируемых файлов или наверно количество строк, потом поделить. если есть куда запейсать. можно прямо в батник.
Автор: wolf0425
Дата сообщения: 01.02.2011 10:42

Цитата:
пишет только что "Не удается найти указанный файл." и больше ничего не происходит
имя файла неверно же неправильно вписал - оно там одно
Автор: Road Runner J
Дата сообщения: 01.02.2011 11:20
Добрый день!
Как выдрать количество хопов до хоста по результатам traceroute, то есть еcли хопов 10 то соответственно чтоб скрипт показал цифру 10 в конце или если 15 то 15, типа echo 15? wsh и powershell допустимы.
Автор: res2001
Дата сообщения: 01.02.2011 11:42
Road Runner J

Код: @echo off
for /f "skip=4 tokens=1" %%a in ('tracert %1') do if %%a gtr 0 (set "hop=%%a") else call echo.%%hop%% & exit
Автор: Road Runner J
Дата сообщения: 01.02.2011 13:33
res2001 ну и любой другой кто шарит

Я

Цитата:
Добрый день!
Как выдрать количество хопов до хоста по результатам traceroute, то есть еcли хопов 10 то соответственно чтоб скрипт показал цифру 10 в конце или если 15 то 15, типа echo 15? wsh и powershell допустимы.


res2001

Код: @echo off
for /f "skip=4 tokens=1" %%a in ('tracert %1') do if %%a gtr 0 (set "hop=%%a") else call echo.%%hop%% & exit
Автор: res2001
Дата сообщения: 01.02.2011 13:47
Road Runner J
как-то так видимо

Код: @echo off
>nul ping -n 1 %1 || (echo.NO CONNECTION    %1 & exit)
for /f "skip=4 tokens=1" %%a in ('tracert -d -h 21 %1') do if %%a gtr 0 (set "hop=%%a" & if %%a gtr 20 echo TOO MANY HOPS & exit) else call echo.%%hop%% & exit
Автор: Free_Soft
Дата сообщения: 02.02.2011 00:15
хм... как заставить findstr искать только символы a-f, 0-9 и :?

Код: findstr /i ": [a-f] [0-9]"
Автор: 01MDM
Дата сообщения: 02.02.2011 06:50
Free_Soft

Код:
findstr /i "\<\/color:[0-9a-f][0-9a-f]\>"
Автор: Free_Soft
Дата сообщения: 02.02.2011 08:02
01MDM
пасиб. теперь вот в другом параметре ищутся только цифры. понятно, что тогда так:

Код: findstr "\<\:[0-9][0-9]\>"
Автор: aidarsimon
Дата сообщения: 02.02.2011 09:22
здравствуйте. Имеется бат файл, с помощью которого создается бэкап, архивируются папки. И все это записывается в лог-файйл. Вопрос - как убрать знаки, которые вставляет winrar


Код: "c:\Program Files\WinRAR\Rar.exe" a -ep1 -m5 -rr10p "d:\admin\backup\backup_\%date%\1cv77.rar" "d:\admin\backup\backup_\%date%\1cv77" >>"d:\admin\backup\отчет от %date%.txt"
Автор: wolf0425
Дата сообщения: 02.02.2011 11:38
Free_Soft
Цитата:
Это для двух разрядов, но проблема в том, что цифр может быть от одной до трех. Как можно это обойти?

вариант "цифр от одной до дофига" findstr /r "\:[0-9][0-9]*\>"

а если надо именно от одной до трех - то для того же :nnn> можно например так:
sed -n -r "/:[0-9]{1,3}>/p" <file

Добавлено:
aidarsimon
Цитата:
как убрать знаки, которые вставляет winrar
во-первых не winrar, а rar - если верить твоему коду. Есть нюансы.
во вторых что тебе надо то - подсказать какой ключик отвечает за отключение этих nn%
типа в rar /? это непонятно? -idp
- или какой утилиткой почистить уже имеющийся лог от этих nn%?


Цитата:
А как потом отправить на e-mail
в шапке в полезных утилитах есть blat
Автор: aidarsimon
Дата сообщения: 02.02.2011 13:32

Цитата:
во вторых что тебе надо то - подсказать какой ключик отвечает за отключение этих nn%
типа в rar /? это непонятно? -idp
- или какой утилиткой почистить уже имеющийся лог от этих nn%?

и то и то было бы неплохо

Цитата:
Цитата:
А как потом отправить на e-mail
в шапке в полезных утилитах есть blat

спасибо.
Автор: wolf0425
Дата сообщения: 02.02.2011 14:08

Цитата:
и то и то было бы неплохо
первое написано же - -idp
а чистить логи - sed тебе в руки...
sed -r "s;....\x08{1,};;gi" <in >out
Автор: aidarsimon
Дата сообщения: 02.02.2011 14:09
wolf0425
нашел в хэлпе, не ругайся. оптишусь если что )

Добавлено:
Все четко, спасибо. Надо было сразу мануал по rar смотреть а не по winrar
Автор: lorents
Дата сообщения: 02.02.2011 15:46
Добрый день!
у меня в batch есть проверка файлов

Код: set Docs="%~dp0Tools\"
PATH %Docs%;%PATH%
if not exist %Docs%advdef.exe set "nofile=%nofile%Advdef "
...
if not exist %Docs%config.ini set "nofile=%nofile%config.ini"
if defined nofile (
    echo Приложение не смогло получить доступ к следующим файлам:
    echo %nofile%
)
Автор: res2001
Дата сообщения: 02.02.2011 16:00
lorents
Способ 1: список файлов сохраняй во временный файл, потом его печатай.
Способ 2: при создании списка файлов отделяй их друг от друга пробелами, выводи список так: for %%a in (%nofile%) do echo.%%a
Автор: lorents
Дата сообщения: 02.02.2011 16:07
res2001
Второй способ именно то что надо. Спасибо.
Автор: Free_Soft
Дата сообщения: 02.02.2011 17:14
А как можно это сократить?

Код: echo %par1% | find /i "color" >nul && set colrp=%par1:~6,9%
echo %par2% | find /i "color" >nul && set colrp=%par2:~6,9%
echo %par3% | find /i "color" >nul && set colrp=%par3:~6,9%
echo %par4% | find /i "color" >nul && set colrp=%par4:~6,9%
Автор: wolf0425
Дата сообщения: 02.02.2011 17:42

Цитата:
А как можно это сократить?
наверно так:
Код: for %%a in (%par1% %par2% %par3% %par4%) do set "_tmp=%%~a" & find /i "color" %%a >nul && call set "colrp=%%_tmp:~6,9%%"
Автор: Free_Soft
Дата сообщения: 02.02.2011 18:13
wolf0425
Красиво...)
только %par1%...%par4% имеют вид типа /color:xx. Слеш не помешает в твоей конструкции?

Добавлено:
помешает... как быть?
Автор: 01MDM
Дата сообщения: 02.02.2011 19:35
Free_Soft

Цитата:
А как можно это сократить?


Код:
@echo off
setlocal

set "par1=/color:01"
set "par2=/color:02"
set "par3=/coler:03"
set "par4=/color:04"

for /f "tokens=2,3 delims=:/" %%i in ('set par') do if "%%i"=="color" set "colrp=:%%j"
Автор: Free_Soft
Дата сообщения: 02.02.2011 19:38
01MDM
ммм.. не пойдет. числовые значения могут быть любыми. Это параметры запуска, указываемые пользователем. Придется оставить как было... Но все равно спасибо
Автор: wolf0425
Дата сообщения: 02.02.2011 19:58

Цитата:
Слеш не помешает в твоей конструкции?
да там не слеш мешает, а конструкцию я срисовал с твоей не проверив и не задумавшись.

Код: for %%a in (%par1% %par2% %par3% %par4%) do set "_tmp=%%~a" & echo."%%~a" | find /i "color" >nul && call set "colrp=%%_tmp:~7,2%%"
Автор: 01MDM
Дата сообщения: 02.02.2011 20:16
Free_Soft

Цитата:
числовые значения могут быть любыми.

Какие значения? если ты про set par1=/color:01 и т.д., то это только для примера.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: зависает установка Windows XP: 39 минут


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