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

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

Автор: LeXorium
Дата сообщения: 10.02.2007 14:46
Спасибо.
А теперь как эту строчку запихать вот сюда:

Код:
E:\MCODER\mplayer\mencoder.exe %1 -priority idle -oac copy -vf pp=md,hqdn3d=2:1:2,crop=688:560:24:6,scale=720:-2,harddup -ofps 25 -sws 9 -noskip -ffourcc DX50 -ovc lavc -lavcopts vqscale=2:vcodec=mpeg4:v4mv:trell:keyint=150:mbd=2:cbp:mv0:preme=2:mpeg_quant -o k:\%1.xvid.avi
Автор: Elroir
Дата сообщения: 10.02.2007 14:52
LeXorium
Вместо "echo %string%" в последней строке батника, пишешь:

Код:
E:\MCODER\mplayer\mencoder.exe %1 -priority idle -oac copy -vf pp=md,hqdn3d=2:1:2,%string%,scale=720:-2,harddup -ofps 25 -sws 9 -noskip -ffourcc DX50 -ovc lavc -lavcopts vqscale=2:vcodec=mpeg4:v4mv:trell:keyint=150:mbd=2:cbp:mv0:preme=2:mpeg_quant -o k:\%1.xvid.avi
Автор: LeXorium
Дата сообщения: 10.02.2007 14:54
Да, там проблемка: вкрадыввается лишний пробел после текста:


Код: crop=688:560:24:6 ,scale=720
Автор: Elroir
Дата сообщения: 10.02.2007 15:02
LeXorium
Исправь код:

Код:
@echo off
setlocal
set line=99
for /f "skip=%line% tokens=8 delims=) " %%a in (crop.log) do (
if not defined string set "string=%%a"
)
Автор: igor_andreev
Дата сообщения: 10.02.2007 15:09
Elroir

Цитата:
А зачем качать wget-ом?

А чем еще? Браузером неудобно.
Автор: LeXorium
Дата сообщения: 10.02.2007 15:31
Elroir
Спасибо тебе безмерное. И напоследок, скажи как исправить вот этот батник (go.bat), чтобы он "скармливал" на другой батник (enc.bat) ВСЕ найденные в текущей и низлежащих каталогах файлы?


Код: :go.bat
chcp 1251
for %%v in (*.mpg) do call enc.bat %%v
Автор: Elroir
Дата сообщения: 10.02.2007 15:33
igor_andreev

Цитата:
Браузером неудобно

Это понятно . Но ведь ты все равно начинаешь закачку, кликнув по ссылке правой клавишей мышки и выбрав скачать (wget-ом). Или я неправильно понимаю?
ViSiToR-у wget нужен, чтобы после скачивания можно было разархивировать файл, но ты написал, что все им качаешь.

Добавлено:
Все -дошло. Добавляется описание и т.д.

Добавлено:
LeXorium

Код:
:go.bat
chcp 1251
for /r %%v in (*.mpg) do call enc.bat "%%v"
Автор: igor_andreev
Дата сообщения: 10.02.2007 16:10
Elroir
Я когда то давно прочитал статью О вреде дружественных интерфейсов С чем-то мысленно согласился, с чем-то не очень. Но понял, что терпеть не могу вечно не вовремя выскакивающие окна гуевых программ. Программа должна отработать и молча вернуть 0 в случае удачи или 1 при ошибке. Имхо Так что, если есть возможность вместо гуевой проги пользоваться консольным вариантом, я пользуюсь им.


Цитата:
Добавляется описание и т.д

Не поэтому. Wget я сильно зауважал после скачивания одной CHM-книженции с fixdown.com. Там в то время(год эдак 2002) было несколько зеркал, но ни до одного было не достучаться. Пробовал и на ADSL у знакомых и через спутник и всеми возможными качалками, какие в инете есть. Дохли все качалки, как бобики, нет такого файла там и все. Так я у себя дома на обычном диалапе натравливал на эти зеркала батник приблизительно такого типа:
:loop
wget -c -параметры_всякие http://www.fixdown.com/soft/19436.asp?soft=gd165down
wget -c -параметры_всякие http://www.fixdown.com/soft/19436.asp?soft=gnx165down
wget -c -параметры_всякие http://www.fixdown.com/soft/19436.asp?soft=el165down
find /i "' saved [" wget-log && goto :eof
goto :loop
Диалап правда был "бесплатный день", время с 9 утра и до 6 вечера не считалось. И нормально, иногда по 10-20 Кб в час, иногда ничего за весь день, но wget выдрал таки этот файл у китайцев недели за три. С тех пор у меня ни одной гуевой качалки на компе не было
Автор: ViSiToR
Дата сообщения: 10.02.2007 17:26
Elroir

Цитата:
ViSiToR-у wget нужен, чтобы после скачивания можно было разархивировать файл

Нет, мне он не очень то и нужен, я приютил неплохо curl (для распаковки мне достаточно чтобы в указанное место скачался архив). Я поинтересовался творением (довольно неплохим) igor_andreev'а т.к любопытность и стремление к познаниям привыше всего!


Цитата:
Все -дошло. Добавляется описание и т.д.

Это неважно чем качать, главное верно принимать данные и выводить их в файл (благодоря igor_andreev'ву я вскоре и это прикручю к батнику ).

P.S
Батник для скачки и распаковки я сделал не для себя, а точнее не для собственного использования, мне просто стало интересно, смогу ли я это сделать, казалось бы столь примитивными средствами (хотя очень иногда полезными) - и как оказалось, смог - так что пользуйтесь наздоровье .
Автор: Elroir
Дата сообщения: 10.02.2007 17:44
igor_andreev
Понял. Интересная статья - я, правда, тоже не со всем согласен

ViSiToR
Я тоже curl-ом пользуюсь - для смены IP через раутер.
P.S. С шапкой, все-таки нужно что-то делать - твоими стараниями она очень быстро растет
Автор: LeXorium
Дата сообщения: 10.02.2007 18:28
Elroir
Изивините, что опять со своими баранами, однако, тайны командной строки для меня покрыты мраком
Аппетит увеличился, теперь бы еще из той же строчки:

Код: crop=688:544:24:8
Автор: Elroir
Дата сообщения: 10.02.2007 18:32
LeXorium

Код:
E:\MCODER\mplayer\mencoder.exe %1 -priority idle -oac copy -vf pp=md,hqdn3d=2:1:2,%string%,scale=%string:~5,3%:-2,harddup -ofps 25 -sws 9 -noskip -ffourcc DX50 -ovc lavc -lavcopts vqscale=2:vcodec=mpeg4:v4mv:trell:keyint=150:mbd=2:cbp:mv0:preme=2:mpeg_quant -o k:\%1.xvid.avi
Автор: Lapochka ili Chai
Дата сообщения: 11.02.2007 20:58
Есть файл file.txt c именами папок и файлов, полученный по команде dir /s/b > file.txt
Он большой (мегабайт 20-30).
Хочу найти в нём те строчки, длина которых приближается к 256 позициям. Ну, скажем, больше или равна 240 байтам.

Можно ли сделать это с помощью пакетника?

Хочется иметь результат в виде аналогичного текстового файла, как бы полученного из исходного удалением строчек, длина которых меньше 240. То есть чтобы порядок оставшихся строчек не менялся.

Заранее благодарю.
Автор: Elroir
Дата сообщения: 11.02.2007 21:53
Lapochka ili Chai
Без сторонних утилит вряд ли получится. А если использовать утилиту sed, то можно так:

Код:
@echo off
sed -n "/^.\{240\}/p" < file.txt > long_names.txt
Автор: igor_andreev
Дата сообщения: 11.02.2007 22:03
Elroir
Без сторонних в принципе можно. Если каждую строчку из файла file.txt записывать в темп-файл, то длина этой строчки будет размер temp-файла минус 2 байта. Но это муторно, долго на 20-мегабайтном файле и батник еще кукситься будет, если "&" или еще какие символы ему в названии попадутся.
Lapochka ili Chai
Скриптом *.vbs можно

Код:
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.OpenTextFile("file.txt", 1, false)
Set f2 = fso.OpenTextFile("file_more_240.txt", 2, true)

do while f1.AtEndOfStream = False
CurrentLine=f1.ReadLine
If Len(CurrentLine)>240 Then f2.WriteLine CurrentLine
loop

f1.Close
f2.Close
msgbox "сделано"
Set fso = Nothing
WScript.Quit
Автор: Elroir
Дата сообщения: 11.02.2007 22:08
igor_andreev
Ну я и не сомневался, что VB скриптом можно
Но тема-то по батникам
Автор: igor_andreev
Дата сообщения: 11.02.2007 22:26
Elroir
Типа так батником

Код:
@ECHO OFF & SETLOCAL ENABLEEXTENSIONS
FOR /F "TOKENS=* DELIMS=" %%A IN (file.txt) DO CALL :WRITE_LONG_LINE "%%A"
GOTO :EOF

:WRITE_LONG_LINE
ECHO.%1>"%TEMP%\LINE#.TMP"
FOR %%A IN ("%TEMP%\LINE#.TMP") DO SET /A "LINE_LENGTH=%%~zA-4"
IF %LINE_LENGTH% GTR 240 ECHO.%1>>files_more_240.txt
Автор: NIKZZZZ
Дата сообщения: 12.02.2007 02:05
Lapochka ili Chai
Elroir

Цитата:
Без сторонних утилит вряд ли получится.

Самое простое - использовать переполнения буфера строки.
Берешь строку нужной длинны, добавляешь к ней разделитель (,) и тестовую строку.
С помощью for /F "tokens=1,* delims=," читаем все после разделителя и сравниваем с тестовой строкой.

Автор: Elroir
Дата сообщения: 12.02.2007 02:13
NIKZZZZ
Не понял . Каков размер буфера у строки? Какого размера брать тестовую строку?
Приведи пример, пожалуйста.
Автор: NIKZZZZ
Дата сообщения: 12.02.2007 05:10
Elroir
Решение не слишком удачное, я думал , что макс. длина 1024 байта, а она оказалась 8192. Но такая штука все равно должна работать.
Если длина строки превысит 8192 байта, информация будет потеряна. Берем строку, скажем 8000 символов, добавляем к ней разделитель и тестируемую строку, после этого снова командой for /F "tokens=1,* delims=," получаем часть этой строки после разделителя. Если переполнения не произошло (8000 + длина тест. строки < 8192) результат будет равен тест. строке, иначе - нет. Таким образом узнаем превышает ли длина тест. строки в нашем случае 192 байта.



Автор: Elroir
Дата сообщения: 12.02.2007 12:03
NIKZZZZ
Спасибо, теперь все понятно.
Но тут еще могут быть те же проблемы со специальными символами, про которые писал igor_andreev. Записываться-то строчки будут echo-ом.
Автор: vmix
Дата сообщения: 12.02.2007 18:22
К серверу W2k подключаются по vpn клиенты. На клиентах настроено переподключение при обрыве соединения. Иногда vpn подключение есть, а ping не идет. Достаточно этому подключению сделать дисконнект, подождать пока клиент переподключится и всё ок. Каким образом это можно реализовать в скрипте или батнике, главное - как в ком. строке сделать дисконнект определенному подключению?
Подключения можно посмотреть так:

netsh interface show interface

Admin State State Type Interface Name
-------------------------------------------------------------------------
Enabled Connected Loopback Loopback
Enabled Connected Internal Internal
Enabled Connected Dedicated inet
Enabled Connected Client clnt1
Enabled Connected Client clnt2
Enabled Connected Client clnt3

Сейчас я использую

net stop RemoteAccess

но в этом случае обрубаются все подключения, а это плохо..

Какие идеи?
Автор: Lapochka ili Chai
Дата сообщения: 12.02.2007 18:52
Elroir
igor_andreev
NIKZZZZ

Большое спасибо! Мне, собственно, решение надо, неважно, батник *.bat или скрипт *.vbs.

А с помощью чего следует запускать скрипт *.vbs?
Достаточно ли для этого просто Windows (как для батника) или надо ставить к.-л. компиляторы или интерпретаторы *.vbs?

Автор: Elroir
Дата сообщения: 12.02.2007 19:03
Lapochka ili Chai
Достаточно Windows - просто двойной клик по файлу.
Автор: StanislavG
Дата сообщения: 12.02.2007 22:44
Можно ли сделать отправку E-mail с прикреплённым файлом из bat файла
Автор: Elroir
Дата сообщения: 12.02.2007 23:37
StanislavG
В шапке - утилита blat — отправка почты из консоли
Автор: StanislavG
Дата сообщения: 13.02.2007 01:31
Elroir
А вообще такое возможно ли создать bat файл который был отсылал файлы если да то где можно мне прочитать по подробней об этом.
Автор: Elroir
Дата сообщения: 13.02.2007 01:37
StanislavG
Средствами самой операционной системы нельзя. А с помощью blat - просто создаешь батник, где каждая строчка - это запуск утилиты blat с разными адресами и файлами.
Синтаксис blat - по ссылке, которую я дал выше. Или я неправильно понял вопрос?
Автор: Tipulatoid
Дата сообщения: 13.02.2007 01:58
StanislavG
Я из своего батника через The Bat! отправляю. Он у меня дефолтный почтовик.
Автор: tolyn77
Дата сообщения: 13.02.2007 07:10
Tipulatoid
а как Ты отправляешь через the bat!?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Сбой активации XP sp2


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