Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 3

Модерирует : KLASS, IFkO

vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

   

vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задачи на bat-файлах
(часть 1, часть 2)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:54 27-04-2007 | Исправлено: Elroir, 03:59 10-09-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ruslan_FM
    @Echo Off
    Set /p name=

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:08 06-06-2007
    Ruslan_FM

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
     
    СПАСИБО !!!!

    Всего записей: 69 | Зарегистр. 10-11-2005 | Отправлено: 17:12 06-06-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ruslan_FM, вы с taxist77 не сговорились, часом?
    самостоятельно почитать set /? - совсем никак?
     
    set /p name=* Как вас завут. *:

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 17:31 06-06-2007
    VovaII

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Начали появлятья двухядерные процессоры, возникла задача.
    Возможно ли через бат(или cmd)-файл запустить программу на одном(определенном(первом или втором)/неопределенном) ядре?

    Всего записей: 286 | Зарегистр. 20-09-2006 | Отправлено: 17:40 06-06-2007
    taxist77

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    С справкой работать умеем ) только не всегда хватает времени, к стати  
    set /p var=<test.txt  не получаетса, хотя в этом файле всего одна строка (

    Всего записей: 5 | Зарегистр. 06-06-2007 | Отправлено: 17:49 06-06-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    taxist77
    Работает
    Давай батник полностью

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:59 06-06-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VovaII

    Цитата:
    Возможно ли через бат(или cmd)-файл запустить программу на одном(определенном(первом или втором)/неопределенном) ядре?  

    http://www.ice-graphics.com/ICEAffinity/IndexR.html

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 18:13 06-06-2007
    sadmn



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста, как наиболее быстро установить, есть ли на компьютере доступ к локальной сети из .bat файла?
    В настоящий момент используется
    ...
    ipconfig | Find /i "DNS">nul && goto start
    ...
    Что приводит к задержке приблизительно в 1 секунду. Хотелось бы ускорить. Заранее спасибо!
    (ответ ipconfig для вкл/откл)

    Всего записей: 1354 | Зарегистр. 04-06-2006 | Отправлено: 18:28 06-06-2007 | Исправлено: sadmn, 18:30 06-06-2007
    taxist77

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    да собственно это и есть вес файл
     
    set /p mes=<1.txt
    net send 192.168.0.7 %mes%

    Всего записей: 5 | Зарегистр. 06-06-2007 | Отправлено: 18:50 06-06-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    taxist77 а что у тебя говорит net send 192.168.0.7 test ?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 19:07 06-06-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mitrichbel

    Цитата:
    запросто и недвузначное может быть, да

    Я это понял. Ты мой код, который я для тебя выложил, пробовал?
    http://forum.ru-board.com/topic.cgi?forum=62&topic=10650&start=680#3

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:16 06-06-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sadmn

    Цитата:
    Что приводит к задержке приблизительно в 1 секунду

    А что подождать секунду это критично?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 19:22 06-06-2007 | Исправлено: Maza Faka, 19:25 06-06-2007
    taxist77

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    KapralBel
    все ок, все работает, ручни наверное не от туда выросли

    Всего записей: 5 | Зарегистр. 06-06-2007 | Отправлено: 19:39 06-06-2007
    Sovdep

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Предложеный Maza Faka вариан занести строку ФАЙЛА в %переменную% работает отлично:
    for /F "tokens=*" %%a in ('grep "Video stream" PSNR') DO SET [VideoBitrate]=%%a
     
    Непонятно почему не работает передача строки из ВЫХОДНОГО ПОТОКА другой программы:
    type PSNR | for /F "tokens=*" %%a in ('grep "Video stream"') DO SET [VideoBitrate]=%%a
    ECHO %[VideoBitrate]% - переменная пустая!
     
    Пустая переменная на выходе цикла и все тут! В самом то цикле FOR DO значение присваивается. Но наружу ничего!  
    SETLOCAL EnableDelayedExpansion никак на результат не влияет.  
     
    Что-то  я недогоняю.

    Всего записей: 18 | Зарегистр. 05-06-2007 | Отправлено: 15:33 07-06-2007 | Исправлено: Sovdep, 15:34 07-06-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sovdep

    Цитата:
    type PSNR | for /F "tokens=*" %%a in ('grep "Video stream"') DO SET [VideoBitrate]=%%a

    "for /f" так не работает - он принимает ввод только из своих скобок.

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:46 07-06-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Sovdep
    Так ты определись, строки какой команды или текста ты хочешь разбирать. Здесь:

    Цитата:
    type PSNR | for /F "tokens=*" %%a in ('grep "Video stream"') DO SET [VideoBitrate]=%%a

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

    Код:
     
    for /f "tokens=*" %%a in ('type PSNR') do set VideoBitrate=%%a
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 15:50 07-06-2007
    Sovdep

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Это сильно упрощенный пример. На самом деле "файл" РSNR это как бы выходной поток программы mencoder. То что мне нужно, в натуре выглядит крайне непригляно
     

    Код:
    for /F "tokens=*" %%G in ('mencoder.exe "%[SourceFile]%" -vc mpeg12, -sws 9 -vf %[vf2]% -passlogfile "%[PassLogFile]%"  -ovc %[ovc1]%%[ovc2]%bitrate=%[VideoBitrate2]%:pass=2:psnr -af %[af]% -oac %[oac]% -o "%[DestFile]%" -force-avi-aspect %[169]%  -noencodedups') DO SET [VideoBitrate]=%%G

     
    Но так тоже не работает. "Слишком длинная входная строка"
     
    А всего-то надо для отчета перехватить и отформатировать две последние строки с результатами кодирования
     

    Код:
    Video stream: 2268.553 kbit/s  (158569 B/s)  size: 427102799 bytes  2693.480 secs  67342 frames
    xvid: Average PSNR Y:38.16, Cb:45.67, Cr:47.67, All:39.62 for 67335 frames

     
     
    Elroir! Я так понял FOR не только поток от других программ не принимает, но и в собственной (command) пайперы "|" не недопускает.

    Всего записей: 18 | Зарегистр. 05-06-2007 | Отправлено: 16:22 07-06-2007 | Исправлено: Sovdep, 16:28 07-06-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka он же хочет PSNR через grep профильтровать перед обработкой...
     
    Sovdep в FOR пайперы записываются так
    for /f "tokens=*" %%a in ('type PSNR ^| grep "Video stream"') do set VideoBitrate=%%a  
     
     
    Добавлено:
    Sovdep а у тебя такая строка без for - ещё не слишком длинная?
    %[*File]% небось с полными путями влепил и через это страдаешь...

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 16:23 07-06-2007 | Исправлено: wolf0425, 16:31 07-06-2007
    Sovdep

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    "Джеки" она еще понимает. А вот "Джеки Браун.mpg" уже нет
     
    Все локально. Короче уже некуда.  
    Ведь mencoder, кто не знает, это  функционально K-Lite c VirtualDub в одном .ехе файле. Ну и параметры командной строки там соответсвующие.
     

    Всего записей: 18 | Зарегистр. 05-06-2007 | Отправлено: 16:35 07-06-2007 | Исправлено: Sovdep, 16:36 07-06-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sovdep совет "пиши лог mencoder в файл и не парься" - тебе нужен?
    или будешь дальше думу думать?
     
    Добавлено:
    Sovdep кстати, наверно ты можешь мне подсказать консольную утилитку, плюющую продолжительность фильма (в числе прочего) в stdout?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 16:44 07-06-2007
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 3
    vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru