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

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

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

vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 100 101

   

vu1tur



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

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 17:45 04-09-2010 | Исправлено: Accessor, 18:04 28-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    там типа файл не грузится. тоже грузится только в темп. добавь строку в батник чтоб мазила удалялалсь

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 13:53 04-10-2010
    wolf0425



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

    Цитата:
    ну к примеру обратиться к серваку какому нить .... подобие как на сайте speedtest.net
    если бы ты внимательно смотрел - то увидел бы, что на speedtest.net тебе грузят флешку, которая качает файл и меряет скорость закачки.
     

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 14:03 04-10-2010 | Исправлено: wolf0425, 14:04 04-10-2010
    01MDM



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

    Цитата:
    подобие как на сайте speedtest.net

    Что-то я не доверяю этим тестам. Speedtest выдает какие-то космические скорости, которых я в жизнь не видел.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:26 04-10-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    в автоматическом режиме спид тест выбирает сервер наиболее близкий по расположению к пользователю. таким образом (у меня точно так) выбирает сервер который для моего провайдера локальный. лучше всего мерить по москве или нью йорку (для россии)

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 14:29 04-10-2010
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    Все равно нереально, скорость в 3 раза превышает скорость, заявленную провайдером. На этот раз выбрал сервер в Испании.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:38 04-10-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    срана. у меня точно мериит.

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 14:39 04-10-2010
    wolf0425



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

    Цитата:
    Speedtest выдает какие-то космические скорости, которых я в жизнь не видел.
    хз. у меня он выдает вполне соответсвующие тарифному плану скорости (с учетом оверхеда протоколов), надо только внимательно смотреть что он меряет в мегабитах/килобитах (в секунду) а не мегабайтах/килобайтах. с учетом этого - скорости вполне ожидаемые, только пинг отличается от того что я сам меряю.
     

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 14:47 04-10-2010 | Исправлено: wolf0425, 14:49 04-10-2010
    01MDM



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

    Цитата:
    он меряет в мегабитах/килобитах (в секунду) а не мегабайтах/килобайтах

    Хм. Точно. Тогда это все меняет. Т.е. результат теста умножаем на 0.125 или делим на 8
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:04 04-10-2010
    qwertyuiopa

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как в BAT файле написать условие: сравнение по маске?
     
    Делаю так:
     
    If /I "%%i"=="*.*"  Echo %%j>>"%$FDir%"
     
    Не работает...

    Всего записей: 24 | Зарегистр. 13-02-2007 | Отправлено: 01:20 05-10-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    qwertyuiopa
    никак

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 07:55 05-10-2010
    smirnvlad

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

    Код:
     
      (echo %%j) | (findstr /R /I .*\..* 1>nul) && (echo %%j>>"%$FDir%")
     

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 09:51 05-10-2010 | Исправлено: smirnvlad, 12:51 05-10-2010
    asdfewqd

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

    Цитата:
    @ECHO OFF
    COLOR 9F
    CLS
    echo OPEN ftp.mozilla.org>MYFTP.txt
    echo ANONYMOUS>>MYFTP.txt
    echo 123>>MYFTP.txt
    echo BELL>>MYFTP.txt
    echo CD pub>>MYFTP.txt
    echo CD firefox>>MYFTP.txt
    echo CD releases>>MYFTP.txt
    echo CD 3.5.3>>MYFTP.txt
    echo CD win32>>MYFTP.txt
    echo CD ru>>MYFTP.txt
    echo binary>>MYFTP.txt
    echo get "Firefox Setup 3.5.3.exe">>MYFTP.txt
    echo quit>>MYFTP.txt
    ftp -s:myftp.txt
    del myftp.txt
    pause
     

     
    вот что выдаёт
     
     

    Всего записей: 8 | Зарегистр. 30-09-2010 | Отправлено: 13:18 05-10-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    странно, а у мне не дает скачать последнюю версию 3.6.10 - может от ип адреса зависит? ну найди другой публичный фтп в чем проблема.  
    этим способом нельзя эту скорость поместить в переменную в батнике все равно.
     
    Добавлено:
    или версию мазилы другую скачай

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 13:35 05-10-2010
    wolf0425



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

    Цитата:
    этим способом нельзя эту скорость поместить в переменную в батнике все равно.  

    с чего это у тебя сложилось такое ошибочное мнение?
    какие тебе видятся проблемы перехватить и отфильтровать вывод ftp.exe?
    Хуже то, что в разных ОС команда ftp имеет чуть разный формат той строки со статистикой.
     
    Добавлено:
    asdfewqd, тебе написали что на твой компьютер не удалось открыть соединение для передачи файла.
    добавь строку literal pasv  в команды ftp перед командой на закачку.
    просто строку со скоростью напечатать - как-то так:

    Код:
    @echo off
    (
      echo cd /pub/firefox/releases/3.5.3/win32/ru
      echo pwd
      echo binary
      echo literal PASV
      echo get "Firefox Setup 3.5.3.exe"
      echo quit
    ) |    ftp -v -A ftp.mozilla.org  2>nul | findstr /b ftp:
    pause
    перенаправляешь вывод в файл, файл заряжаешь в for и выковыриваешь скорость...
     

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 16:05 05-10-2010 | Исправлено: wolf0425, 16:50 05-10-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    че работает? фтп отдельная утилита со своей комстрокой мне казалось ни фига не выйдет

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:50 05-10-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    помнится, у тебя была утилита, которая могла открывать меню для выбора файла и путь к нему загонять в переменную. как называется?

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 20:39 05-10-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    я ее в полезности добавил, самый нижний в списаке
    http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=0&limit=1&m=2#1
    BAT Enchancer

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 20:43 05-10-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    нашел. а можно в ней как то указать, чтобы в строке "тип файлов" был указан напр., MyFile.exe? Т.е. поиск конкретного файла
     
    Добавлено:
    и еще, как к нему заголовок приделать вместо "мой батничег"?

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 21:28 05-10-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    перекомпилировать.  
    или для заголовка параметр добавить, что сложнее по крайней мере я прям так с ходу это не смогу сделать.
    скажи как надо. может тебе проще асм получить немного?
     
    Добавлено:
    эти програмки простенькие - одна апи фукция и все
     
    Добавлено:
    http://www.masm32.com/
    http://www.masm32.com/masmdl.htm
    http://website.assemblercode.com/masm32/m32v10r.zip

    Цитата:
     
    ECHO OFF
    COLOR 9F
    CLS
    C:\masm32\bin\ml.exe /c /coff current.asm
    C:\masm32\bin\link.exe /subsystem:windows current.obj
    DEL current.obj
    pause
     


    Цитата:

        .386
        .model flat,stdcall
        option casemap:none
        include \masm32\include\windows.inc
        include \masm32\include\user32.inc
        include \masm32\include\kernel32.inc
        include \masm32\include\shell32.inc
        includelib \masm32\lib\user32.lib
        includelib \masm32\lib\kernel32.lib
        includelib \masm32\lib\shell32.lib
        include     \masm32\include\masm32.inc
        includelib  \masm32\lib\masm32.lib
        include \masm32\include\comdlg32.inc
        includelib \masm32\lib\comdlg32.lib
     
     
     
    .data?
    ofn            OPENFILENAME <>
    buffer            db MAX_PATH dup(?)
    String            db MAX_PATH dup(?)
     
    .data
    FileFilter        db "All Files",0,"*.*",0
                db "Text Files",0,"*.txt",0
     
    db "Video Files",0,"*.avi;*.wmv;*.mkv;*.mpg;*.mpeg;*.mp4",0
    db "Audio Files",0,"*.wav;*.mp3;*.flac;*.wma;*.ac3;*.ram;*.rm",0
    db "Image Files",0,"*.iso;*.ima;*.img;*.imz;*.vdf;*.isz;*.bin;*.cue;*.nrg;*.mdf;*.mds;*.uif",0
    db "Bitmap Files",0,"*.bmp;*.jpg;*.jpeg;*.png;*.gif;*.pcx;*.iff;*.psd;*.ras;*.rsb;*.sgi;*.tga;*.tiff",0
    db "Archive Files",0,"*.zip;*.rar;*.gz;*.gzip;*.7z;*.cab;*.arj;*.jar",0
     
                db 0
    ;InitialDir        db "C:\",0
    WindowTitle        db "Мой батничег",0
     
    .code
    start:
        invoke GetCommandLine            ; вызываем функцию командной строки в eax возврщается смещение
        Call MyProc                ; проматываем до первого обратного слеша
        mov ebx, eax                ; сохраним смещение на первый параметр
     
    mov ofn.lStructSize, sizeof ofn
    mov ofn.hwndOwner, NULL
    mov ofn.hInstance, NULL
    mov ofn.lpstrFilter, offset FileFilter
    mov ofn.lpstrCustomFilter, NULL
    mov ofn.nMaxCustFilter, NULL
    mov ofn.nFilterIndex, NULL            ; определяет выбранный в настоящий момент фильтр для поля "Тип файлов" диалога
    mov ofn.lpstrFile, offset buffer
    mov ofn.nMaxFile, MAX_PATH
    mov ofn.lpstrFileTitle, NULL            ; указатель на буфер, в котором находятся имя и расширение(без пути) выбранного файла
    mov ofn.nMaxFileTitle, NULL            ; определяет размер буфера, на который указывает параметр lpstrFileTitle
    mov ofn.lpstrInitialDir, ebx            ; указатель на строку, в которой определяется стартовая папка при открытии диалога. Если параметр имеет значение NULL, то система использует текущую папку как стартовую для этого диалога.  
    mov ofn.lpstrTitle, offset WindowTitle ;NULL    ;  указатель на строку, которая будет помещена в заголовке окна диалога. Если этот параметр имеет значение NULL, то система использует стандартные заголовки (соответственно, "Сохранить как" или "Открыть")  
    mov ofn.Flags, OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_LONGNAMES or OFN_EXPLORER or OFN_HIDEREADONLY
    mov ofn.nFileOffset, NULL
    mov ofn.nFileExtension, NULL
    mov ofn.lpstrDefExt, NULL
    mov ofn.lCustData, NULL
    mov ofn.lpfnHook, NULL
    mov ofn.lpTemplateName, NULL
     
        invoke GetOpenFileName, ADDR ofn
        invoke CharToOem, addr buffer, addr String
        invoke  StdOut,ADDR String        ;  
        invoke    ExitProcess,eax            ; выходим из программы, eax - код возврата
     
    MyProc proc            ; подпрограмма разбора командной строки
    next:                ; метка цикла
        cmp byte ptr[eax],'/'    ; знак равен обратному слешу?
        je found        ; если да выходим
        cmp byte ptr[eax],0    ; знак равен 0 - конец строки?
        jz esit            ; если да выходим из подпрограммы
        inc eax            ; увеличиваем смещение на 1 - переводим указатель на следующий знак
        jmp next        ; в начало цикла
    found:
        mov byte ptr[eax], 0    ; заменяем обратный слеш на 0 - делитель строки
        inc eax            ; переводим укзатель на следующий знак
    esit:
        Ret            ; возвращаемся в программу
    MyProc endp
     
    end start            ; конец ассемблирования

     
    Добавлено:
    страшно большая структура в середине это просто задание параметров окна - констатнт типа

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 22:04 05-10-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    ну просто для выбора папки есть параметр для заголовка, я думал, что и здесь будет просто..
    ну если добавить параметр сложно, можно в заголовке написать "File search..." или просто "Open"?

    Всего записей: 1515 | Зарегистр. 19-04-2010 | Отправлено: 22:14 05-10-2010
       

    Страницы: 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 100 101

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9
    vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru