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

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

Автор: wolf0425
Дата сообщения: 04.10.2010 13:47

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

Автор: 01MDM
Дата сообщения: 04.10.2010 14:04
wolf0425

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

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

Автор: qwertyuiopa
Дата сообщения: 05.10.2010 00:20
Подскажите, как в BAT файле написать условие: сравнение по маске?

Делаю так:

If /I "%%i"=="*.*" Echo %%j>>"%$FDir%"

Не работает...
Автор: bomzzz
Дата сообщения: 05.10.2010 06:55
qwertyuiopa
никак
Автор: smirnvlad
Дата сообщения: 05.10.2010 08:51
qwertyuiopa

Код:
(echo %%j) | (findstr /R /I .*\..* 1>nul) && (echo %%j>>"%$FDir%")
Автор: asdfewqd
Дата сообщения: 05.10.2010 12:18

Цитата:
@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


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

Автор: bomzzz
Дата сообщения: 05.10.2010 12:35
странно, а у мне не дает скачать последнюю версию 3.6.10 - может от ип адреса зависит? ну найди другой публичный фтп в чем проблема.
этим способом нельзя эту скорость поместить в переменную в батнике все равно.

Добавлено:
или версию мазилы другую скачай
Автор: wolf0425
Дата сообщения: 05.10.2010 15:05

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

с чего это у тебя сложилось такое ошибочное мнение?
какие тебе видятся проблемы перехватить и отфильтровать вывод 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
Автор: bomzzz
Дата сообщения: 05.10.2010 18:50
че работает? фтп отдельная утилита со своей комстрокой мне казалось ни фига не выйдет
Автор: Free_Soft
Дата сообщения: 05.10.2010 19:39
bomzzz
помнится, у тебя была утилита, которая могла открывать меню для выбора файла и путь к нему загонять в переменную. как называется?
Автор: bomzzz
Дата сообщения: 05.10.2010 19:43
я ее в полезности добавил, самый нижний в списаке
http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=0&limit=1&m=2#1
BAT Enchancer
Автор: Free_Soft
Дата сообщения: 05.10.2010 20:28
bomzzz
нашел. а можно в ней как то указать, чтобы в строке "тип файлов" был указан напр., MyFile.exe? Т.е. поиск конкретного файла

Добавлено:
и еще, как к нему заголовок приделать вместо "мой батничег"?
Автор: bomzzz
Дата сообщения: 05.10.2010 21:04
перекомпилировать.
или для заголовка параметр добавить, что сложнее по крайней мере я прям так с ходу это не смогу сделать.
скажи как надо. может тебе проще асм получить немного?

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

Добавлено:
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            ; конец ассемблирования


Добавлено:
страшно большая структура в середине это просто задание параметров окна - констатнт типа
Автор: Free_Soft
Дата сообщения: 05.10.2010 21:14
bomzzz
ну просто для выбора папки есть параметр для заголовка, я думал, что и здесь будет просто..
ну если добавить параметр сложно, можно в заголовке написать "File search..." или просто "Open"?
Автор: bomzzz
Дата сообщения: 05.10.2010 21:20
добавить просто, только сосредоточтиться надо, а я щас освсем другое делаю могу только простое поменять.
щас с заголовком сделкаю

Добавлено:
а выбор на что изменить? только чтоб один файл искало?

Добавлено:
http://bomz-co.narod.ru/current.exe - так пойдет???
Автор: Free_Soft
Дата сообщения: 05.10.2010 21:29
пойдет. тока напиши Adobe Premiere Pro.exe
Автор: bomzzz
Дата сообщения: 05.10.2010 21:31
перекачай
Автор: Free_Soft
Дата сообщения: 05.10.2010 21:33
bomzzz
очередной Пасиб
Автор: bomzzz
Дата сообщения: 05.10.2010 21:36
Автор: qwertyuiopa
Дата сообщения: 06.10.2010 08:48
Подскажите, как пропарсить каталог на диске, вытащить только имя файлов и их размер.

Делаю так:
dir *.*>dirka.txt
For /F "skip=5 Tokens=3,4,* UseBackQ Delims= " %%i In ("dirka.txt") Do (
Echo %%i>>proba.txt %%j>>proba.txt
)

в proba.txt:

3я465 download.rar
251 price.xls
3я461 NEW.bat
11я379 Ў ©в
3я387я854я848 Ў ©в

1. Как убрять "я" в размере файла?
2. Как убрать последние 2 строчки: ("11я379 Ў ©в" " 3я387я854я848 Ў ©в") - размер файлов и размер на диске.
Спасибо...
Автор: res2001
Дата сообщения: 06.10.2010 09:19
qwertyuiopa

Код: for %%i in (*.*) do echo %%~zi %%~dpnxi
Автор: wolf0425
Дата сообщения: 06.10.2010 09:36
qwertyuiopa как делать совсем правильно - тебе подсказал res2001, а по твоим вопросам
Цитата:
1. Как убрять "я" в размере файла?
2. Как убрать последние 2 строчки: ("11я379 Ў ©в" " 3я387я854я848 Ў ©в") - размер файлов и размер на диске.
1. можно было добавить ключик /-с в строку dir
2. вообще-то вывод dir перед обработкой неплохо было профильтровать, чтоб в нем остались только строки с файлами.
3. вывод имен подкаталогов - тоже невредно было подавить
т.е. в твоем варианте первую строку правильнее писать было так:
dir /-c /a-d * | findstr /r /b [0-9] > dirka.txt
Автор: qwertyuiopa
Дата сообщения: 06.10.2010 12:17
Спасибо ОГРОМНОЕ!!
Автор: BagaBaga
Дата сообщения: 07.10.2010 10:04
Вопрос. Как при момощи sed из одного файла получить другой путем замены в третьей строке 4х символов с 16ой по 19ю позицию (включительно).

Например, из

11111111111111111111е
22222222222222222222п
33333333333333333333и
444444444444444444444

получить

11111111111111111111е
22222222222222222222п
333333333333333АБВГ3и
444444444444444444444

Добавлено:

Совсем забыл - нумерация строк в файле и символов в строке начинается с 1 (единицы)
Автор: wolf0425
Дата сообщения: 07.10.2010 11:56

Цитата:
путем замены в третьей строке 4х символов с 16ой по 19ю позицию (включительно).

для примера с виндовой кодировкой файлов/батника:

Код: @echo off
chcp 1251
sed.exe -r "3 s;^(.{15})....;\1АБВГ;" <file1 >file2
Автор: Free_Soft
Дата сообщения: 07.10.2010 13:51
Гуру, подскажите, чем отличается использование команды
Код: chcp 1251
Автор: res2001
Дата сообщения: 07.10.2010 13:53
Free_Soft
При использовании латиницы все равно какая кодировка, хоть УТФ8. Они все в этой части одинаковы.
Автор: Free_Soft
Дата сообщения: 07.10.2010 13:54
Добавлено:
блин, пардон... шарики за ролики. имелось ввиду при использовании кириллицы))
Автор: res2001
Дата сообщения: 07.10.2010 14:10
Free_Soft
Если ты не обрабатываешь батником другие текстовые файлы, то использование chcp и сохранения в 866 работает одинаково, ну кроме того что и создаваемые батником файлы будут в соответствующей кодировке.
Но когда начнешь обрабатывать файлы в кодировке 1251 при батнике в 866, тут у тебя все и вылезет.
Кодировка файлов и батника должна быть одна и та же.
Автор: Free_Soft
Дата сообщения: 07.10.2010 14:19
т.е. при выводе текста через eсho в кириллице что chcp 1251 что DOS кодировка -все равно?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Windows 7 Starter


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