Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd) 2

Автор: Valdon
Дата сообщения: 30.08.2008 13:40
Извините если не фтему.... Подскажите сторонние консольные утилиты позволяющие изменить несколько байт в BIN-файле.... т.е. что-то типа:
Код: утилита.exe "имя BIN-файла" 0xАдрес_1 0xБайт_1, 0xАдрес_2 0xБайт_2, ... ,0xАдрес_N 0xБайт_N
Автор: Smitis
Дата сообщения: 30.08.2008 21:32
28Diman89
На все четыре вопроса - wget
http://www.christopherlewis.com/WGet/WGetFiles.htm
Автор: 28Diman89
Дата сообщения: 30.08.2008 21:42
Smitis

А можно все таки с помощью батников?
Автор: Smitis
Дата сообщения: 30.08.2008 21:50
28Diman89

Цитата:
А можно все таки с помощью батников?

Без стороних утилит - нет.
Автор: 28Diman89
Дата сообщения: 30.08.2008 21:52
Smitis
можешь написать конкретную команду в wget для каждого из моих примеров? (с английским плохо) плз
и прогу куда то пихать надо ? (в Windows или в system 32? ) как? откуда запускать?
Автор: Smitis
Дата сообщения: 30.08.2008 22:00
28Diman89

Цитата:
в Windows или в system 32?

В этом вопросе содержиться и ответ
В общем случае - в любую папку из PATH.
Ещё ссылка http://ru.wikipedia.org/wiki/Wget
Там же есть примеры. Добавлю, что для скачивания по маске используется ключ accept.

Пример (из своего батника) - обновить zip и dll файлы (т.е. только с более новой датой) для drweb-а (в текущую папку):

Код:
@echo off
title DrWeb UPDATE
echo DrWeb UPDATE: Start
setlocal
mkdir C:\Trash\AV\DrWeb\upd 2> nul
pushd C:\Trash\AV\DrWeb\upd
wget -nd -N -r -l 0 --accept=zip,dll ftp://ftp.drweb.com/pub/drweb/bases/ --dont-remove-listing
title DrWeb UPDATE: Complete
echo DrWeb UPDATE: Complete
popd
endlocal
Автор: 28Diman89
Дата сообщения: 30.08.2008 22:06
Smitis
если можно напиши примеры, из твоего батника я понял только откуда берутся файлы и какие файлы (zip и dll) остальное (-nd -N -r -l 0 -) туман
сам в этом не разбираюсь ни грамма, куда файлы скопирутся? так и не понял надо ли прогу куда - либо копировать?

Добавлено:
Smitis
я в командно строке ваще не разбираюсь
Автор: Smitis
Дата сообщения: 31.08.2008 16:26
28Diman89
Скачать файл http://www.christopherlewis.com/WGet/wget-1.11.4b.zip
Распаковать из архива файлы openssl.exe wget.exe libeay32.dll msvcr71.dll msvcr80.dll ssleay32.dll (ну или, если лень возиться, все ) в папку, например, %windir%\system32.
Ну а дальше - писать батник и выполнять. Или непосредственно из командной строки, запустив cmd.exe

Скачать один файл, с указание куда:
wget -P c:\путь\для\сохранения http://mysite.ru/zzz.txt
wget -P c:\путь\для\сохранения ftp://mysite.ru/zzz.txt

Скачать несколько файлов:
wget -P c:\путь\для\сохранения\zip -A zip http://mysite.ru
wget -P c:\путь\для\сохранения\zip -A zip ftp://mysite.ru
Автор: 28Diman89
Дата сообщения: 31.08.2008 23:14
Smitis
привет, спасибо за советы, у мя след проблема
след варианты батников пробую, ни 1 не работает
1)
copy libeay32.dll "%windir%\system32\"
copy msvcr71.dll "%windir%\system32\"
copy msvcr80.dll "%windir%\system32\"
copy openssl.exe "%windir%\system32\"
copy ssleay32.dll "%windir%\system32\"
copy wget.exe "%windir%\system32\"
mkdir C:\DrWeb_Update\
wget -P C:\DrWeb\ -A zip ftp://ftp.drweb.com/pub/drweb/bases/


2)
copy libeay32.dll "%windir%\system32\"
copy msvcr71.dll "%windir%\system32\"
copy msvcr80.dll "%windir%\system32\"
copy openssl.exe "%windir%\system32\"
copy ssleay32.dll "%windir%\system32\"
copy wget.exe "%windir%\system32\"
mkdir C:\DrWeb_Update\
wget -P C:\DrWeb_Update\ -A zip ftp://ftp.drweb.com/pub/drweb/bases/


3)
@echo off
title DrWeb UPDATE
echo DrWeb UPDATE: Start
copy libeay32.dll "%windir%\system32\"
copy msvcr71.dll "%windir%\system32\"
copy msvcr80.dll "%windir%\system32\"
copy openssl.exe "%windir%\system32\"
copy ssleay32.dll "%windir%\system32\"
copy wget.exe "%windir%\system32\"
setlocal
mkdir C:\DrWeb_Update\ 2> nul
pushd C:\DrWeb_Update\
wget -nd -N -r -| 0 --accept=zip ftp://ftp.drweb.com/pub/drweb/bases/ --dont-remove-listing
title DrWeb Update: COMPLETE
echo DrWeb Update: COMPLETE
popd
endlocal


в чем проблема я хз. прощшу помощи
Автор: Robby
Дата сообщения: 01.09.2008 10:40
Помогите с такой задачей:
есть папка, в ней подкаталоги, в подкаталогах есть много файлов с расширением pdf. Нужно в каждом подкаталоге слить все pdf файлы в один и после - удалить все исходные pdf файлы. Pdf файлы представляют собой отдельные страницы с цифровыми именами, поэтому имена должны быть отсортированы в порядке возрастания.
Для слияния используется утилита pdfspme_cmd.exe из программы Ap PDF Split/Merge. Eе синтаксис такой:
pdfspme_cmd.exe -mer -i <input1> ... -i <input N> -o <output>
Как это можно реализовать?
Автор: Smitis
Дата сообщения: 01.09.2008 11:31
28Diman89
Я уже сам малость подзабыл, пришлось освежить в памяти

Код:
wget -P C:\DrWeb_Update\ -A zip -r -l 0 -nd ftp://ftp.drweb.com/pub/drweb/bases/
Автор: Robby
Дата сообщения: 01.09.2008 15:26
Smitis
Попробовал батник - работает. Единственное, что заметил, выходной файл создается не в папке с исходными файлами, а в папке на уровень выше. Что в моем случае даже лучше. И в этом случае получаются не нужны строчки с изменением атрибута файла на скрытый и обратно. Спасибо за код.
Автор: noobers
Дата сообщения: 01.09.2008 21:12
есть батник
Код: copy hosts0 %systemroot%\system32\drivers\etc\hosts
xcopy /E /C /I /Q /H /R /Y system\option.ini system_shock-world.com\option.ini
xcopy /E /C /I /Q /H /R /Y system\windowsinfo.ini system_shock-world.com\windowsinfo.ini
rd /S /Q system
xcopy /E /C /I /Q /H /R /Y system_shock-world.com system
xcopy /E /C /I /Q /H /R /Y SysTextures-shock-world.com\L2Font-r.utx SysTextures\L2Font-r.utx
system\l2.exe
Автор: 28Diman89
Дата сообщения: 01.09.2008 23:50
Smitis
ОГРОМНОЕ СПАСИБО!
такой косяк
кароч вот код

copy libeay32.dll "%windir%\system32\"
copy msvcr71.dll "%windir%\system32\"
copy msvcr80.dll "%windir%\system32\"
copy openssl.exe "%windir%\system32\"
copy ssleay32.dll "%windir%\system32\"
copy wget.exe "%windir%\system32\"
mkdir C:\DrWeb_Update\
wget -P C:\DrWeb_Update\ -A zip -r -l 0 -nd ftp://ftp.drweb.com/pub/drweb/bases/

закачивает какие то левые файлы помимо нужных,
я хз чо такое, помоги если можешь

Добавлено:
Smitis
и еще вопрос
если 2 раза запущу продряд, у мя файлы заменются или как ? (спрашивать о замене буит или нет?)
Автор: sapr20031
Дата сообщения: 02.09.2008 05:30
1. Мне уже помогли с копированием файлов обновления DRWEB вот он:

xcopy \\Servern\SCANER\BASA\*.* "c:\Program Files\DrWeb\" /Y /Z /C /H /R
но на некоторых компьютерах папка(DRWEB) нах-ся на диске D(т.к. он системный)
можно как-нибудь сделать чтобы батник сам выбирал системный диск и копировал либо на
С -> c:\Program Files\DrWeb\
или D диск ->d:\Program Files\DrWeb\ ?

2. Также помогли с удалением лишних файлов в папках Temp, но мне бы ДОБАВИТЬ сюда удаление содержимого папки C:\Documents and Settings\*любое*\NetHood\

сам батник вот:

@echo off
setlocal

set "ds=Documents and Settings"
set "tf=Local Settings\Temp"
set "ti=Local Settings\Temporary Internet Files"

echo Start....

for %%i in (Q W E R T Y U I P O A S D F G H J K L Z X C V B N M) do (
if not %~d0==%%i: call:clean %%i
)

echo ....Done
goto:eof

:clean

if exist %1:\Windows\Temp (
pushd %1:\Windows\Temp
call:delete
popd
)

if exist %1:\WinNT\Temp (
pushd %1:\WinNT\Temp
call:delete
popd
)

if not exist "%1:\%ds%" goto:eof
for /f "tokens=*" %%i in ('dir /b /ad "%1:\%ds%"') do (
if exist "%1:\%ds%\%%i\%tf%" (
pushd "%1:\%ds%\%%i\%tf%"
call:delete
popd
)
if exist "%1:\%ds%\%%i\%ti%" (
pushd "%1:\%ds%\%%i\%ti%"
call:delete
popd
)
)
goto:eof

elete
del /q /a /f *.* 1>nul 2>&1
for /f "tokens=*" %%i in ('dir /b /ad') do rd /s /q "%%i" 1>nul 2>&1

PS. Хорошая ТЕМА нахожу здесь очень удобные решения.

Автор: 28Diman89
Дата сообщения: 02.09.2008 09:29
Smitis
если можно надо еще чтоб по датам все сортировал
добавь все в мой код плз (выше написал его)
Автор: cracklover
Дата сообщения: 02.09.2008 09:52
чего-то подзаржавел я с написанием пакетных файлов )
понадобилось мне в пакетнике ввести секцию диалога на действие пользователя. Да или Нет.
понятное дело, я сразу вспомнил о старой доброй choice.com. надыбал её из вин98 и пробую юзать.
диалог выходит, но чего бы не нажимал юзверь, хоть Y хоть N дальнейшие команды в батнике продолжают выполняться. почему так?
Автор: KapralBel
Дата сообщения: 02.09.2008 10:04
cracklover
фрагмент кода приведи
Автор: cracklover
Дата сообщения: 02.09.2008 11:08
KapralBel

а что тут приводить? любая команда. ну, например:

@echo Вы желаете провести архивацию? ...
@ choice.com
@ c:\avp\7z.exe a -sfx c:\test.exe c:\test2\

ожидалось, что в диалоге об архивации при нажатии N архивация отменяется. а она спокойно запускается. где ошибка?

Автор: Taciturn
Дата сообщения: 02.09.2008 11:16
cracklover
А зачем choice.com? Вполне достаточно set.

Код: :CHOICE
@CLS
@SET /P choice=Установить обновления? (Y/N)
@IF "%choice%"=="n" GOTO :EOF
@IF "%choice%"=="N" GOTO :EOF
@IF "%choice%"=="Y" GOTO :SETUP
@IF "%choice%"=="y" GOTO :SETUP
GOTO :CHOICE
Автор: KapralBel
Дата сообщения: 02.09.2008 11:19
cracklover
Нет обработки errorlevel, который возвращает choice
Автор: cracklover
Дата сообщения: 02.09.2008 11:47
Taciturn

Не удается найти указанную метку пакетного файла - SETUP

Добавлено:
все, ступил сам
забыл саму метку поставить)
:SETUP
после чойса.

теперь для идиллии ситуации, как бы мне в пакетнике обыграть момент проверки наличия папки по указанному пути. если папки нет, выводить сообщение и после нажатия любой клавиши сбрасывать выполнение пакетника?
Автор: Flashkens
Дата сообщения: 02.09.2008 11:58
Помогите создать батник, который будет проводить поиск строки в текстовом файле и при первом вхождениии заменять на свою строку... или генерировать новый файл с измененным текстом
Автор: Taciturn
Дата сообщения: 02.09.2008 16:42
cracklover
Примерно так

Код: if not exist Folder (echo Folder not found
pause
goto :EOF)
Автор: Filomat
Дата сообщения: 03.09.2008 16:43
Задача:
нужны множественные подключения по telnet к серверам.
При подключении надо вводить лог/пас и давать одну команду на выполнение.

Никак не могу сообразить, как же это реализовать.
При команде telnet cmd переключается в некий свой режим с отдельными командами.

Если просто открывать
start telnet 192.168.0.1, то он по какой-то причине входит в бесконечный цикл с открытием новых окон.
Автор: vitrzn
Дата сообщения: 05.09.2008 13:49
Подскажите, а можно добавить чтобы не все файлы copy а только те которые старее на 14 дней от текущей даты:

for /f "tokens=*" %%i in ('dir /b /s *.rar') do copy "%%i"
Автор: 01MDM
Дата сообщения: 06.09.2008 04:09
vitrzn
С помощью утилиты forfiles.exe:

Код:
forfiles -p"Your Root Folder" -s -m*.rar -d-14 -c"cmd /c copy @FILE"
Автор: LigovoNet
Дата сообщения: 06.09.2008 05:23
Нужен батник который бы:
1. генерил TXT файл с определённой фразой
2. вставлял бы его, во все ZIP и RAR архивы в папке и её подпапках

Сори если уже обсуждалось, тогда ткните носом.
Автор: Valdon
Дата сообщения: 07.09.2008 14:55
Кто подскажет как с помощью REG ADD добавить пустое значение в конец строки для типа данных REG_MULTI_SZ ? Например, через *.reg-файл это будет выглядеть так:
Код: REGEDIT4
[HKEY_LOCAL_MACHINE\Software\MyCo]
"MyValue"=hex(7):01,00,00,00
Автор: Smitis
Дата сообщения: 07.09.2008 15:14
28Diman89

Цитата:
закачивает какие то левые файлы помимо нужных,
я хз чо такое, помоги если можешь

Эээ, не понял. Что за файлы скачиваюся?


Цитата:
если 2 раза запущу продряд, у мя файлы заменются или как ? (спрашивать о замене буит или нет?)

Файлы будут заменяться, вопросы задаваться не будут.
Для скачивания только обновлённых и новых файлов, нужен ключ -N

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


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