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

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

Автор: Elroir
Дата сообщения: 20.02.2007 17:57
JohnRD
Попробуй заменить set key= на set "key=" и set key=%%b на set "key=%%b"
Автор: JohnRD
Дата сообщения: 20.02.2007 18:07
Elroir

спасибо огромное, все работает.

Добавлено:
подскажите пожалуйста как через reg.exe
вписать строковый параметр по умолчанию "@", как через regedit

Код:
REGEDIT4

[HKEY_CURRENT_USER\Software\MDPREI\CRYPTOGRAPHY\KEYDEVICES]
@="KEYFILE"
Автор: Smitis
Дата сообщения: 21.02.2007 00:05
Tierchen

Цитата:
Хорошо, допустим, что сначала экпортирую реестр в txtшник.
Тут сразу проблемка - а как сразу все ключи писать? Какой разделитель?

Так (примерно):

Код:
start /wait regedit /ea 1.reg HKEY_LOCAL_MACHINE
start /wait regedit /ea 2.reg HKEY_CURRENT_USER
copy 1.reg+2.reg 0.reg > nul
del 1.reg 2.reg > nul
Автор: Patron73
Дата сообщения: 21.02.2007 08:29
KapralBel

Цитата:
Покажи скрипт и как ты его используешь?

делаю так
<------begin----->
ftp
open x.x.x.x


user Юзер пароль
cd www
cd htdocs
cd download
put c:\tmp\txt.txt
quit
<-----end------>
Автор: KapralBel
Дата сообщения: 21.02.2007 09:06
Patron73
А ты пробовал так
Файл script.ftp

Код: open x.x.x.x


user Юзер пароль
cd www
cd htdocs
cd download
put c:\tmp\txt.txt
quit
Автор: IDOL
Дата сообщения: 21.02.2007 10:40
Товарищи господа и дамы (если даммы в этом теме существуют) =)

Нужна помощь !

Суть проблемы столкнулся с червячком он меняет адрес ДНС сервера.

А теперь суть задачи:


Как при помощи батника сбросить параметры DNS сервера в ОПРЕДЕЛЁННОМ сетевом подключении ( но именно того подключения за которое отвечает модем у меня это Motorola)

@echo off

(сдесь надо определить название сетевого подключения на котором висит Motorola)

netsh interface ip set dns name="(название подключения без скобок)" source=dhcp

(А сдесь надо сделать перезагрузку этого сетевого подключения)

Как люди добры как мне это сделать вотрой день мозг ломаю =(





Автор: Nagual
Дата сообщения: 21.02.2007 11:10
Smitis
если бы помогало я, наверное, не постил бы, проверь сам, ставил это значение и кратное миллионам, результата никакого
вот немного убрал пугающий вид кучи пингов, если надо, чтобы еще медленней писало, добавляем %p1% столько раз, сколько нужно
ну и неплохо бы еще с заголовком поработать, но пока в падлу )

Код: :_write
set p1=PING -n 1 -w 1000 loopback ^>NUL ^&^&
cls && echo %* & %p1%%p1%%p1%%p1%%p1%%p1%%p1%%p1%%p1%%p1%%p1%goto eof
Автор: Patron73
Дата сообщения: 21.02.2007 11:14
KapralBel
делал и так....
но сделал по другому
ftp -A x.x.x.x и усе зароботало
Автор: igor_andreev
Дата сообщения: 21.02.2007 11:27
Nagual

Цитата:
ну и неплохо бы еще с заголовком поработать

Да чего с ним работать, этож дураковаляние было, практической пользы от этого батника - ноль целых и ноль десятых Кстати мне про ошибки почему-то никто ничего не говорит. Я там не вставил в начале батника CHCP 1251, %USERNAME% наверно, если русскими буквами - козябрами пишется. И кролик по английски - rabbit, а я почему-то rabbith написал Ужастная громматичиская ашыпка.
Автор: K6
Дата сообщения: 21.02.2007 11:37
Elroir

Спасибо за батник, не мог быть написать как он выполняется в командной строке..?
Автор: KapralBel
Дата сообщения: 21.02.2007 11:46
K6
Набираешь Имя_Батничка.bat и жмешь Ентер
или что ты именно спрашивал?
Автор: igor_andreev
Дата сообщения: 21.02.2007 12:04
Казус со мной случился. Длинный путь к папке был в клипбоарде, напечатал в cmd.exe:
copy filename "C:\Documents and Settings\USER\My Documents\
и случайно жмакнул Enter. Завершающую кавычку не успел написать. А файл скопировался . Попробовал из батника - тоже работает без завершающей кавычки, если папка с пробелами в имени написана последней в строке. Недокументированная фича? Это под XP.
Автор: Smitis
Дата сообщения: 21.02.2007 12:13
igor_andreev

Цитата:
и случайно жмакнул Enter. Завершающую кавычку не успел написать. А файл скопировался . Попробовал из батника - тоже работает без завершающей кавычки, если папка с пробелами в имени написана последней в строке. Недокументированная фича? Это под XP.

Это давно было. Чуть-ли не из ДОСа.
Автор: igor_andreev
Дата сообщения: 21.02.2007 12:15
Smitis
А я не знал и ни разу не сталкивался
Автор: Smitis
Дата сообщения: 21.02.2007 12:18
Nagual

Цитата:
если бы помогало я, наверное, не постил бы, проверь сам, ставил это значение и кратное миллионам, результата никакого

У меня работает. Может у тебя вообще задержки на пинг нет и задержка только за счёт количества команд?
Кстати, в конце может goto :eof нужен, а не goto eof ?
Автор: igor_andreev
Дата сообщения: 21.02.2007 12:49

Цитата:
Кстати, в конце может goto :eof нужен, а не goto eof ?

А цитируемая часть и так в конце батника. И вдобавок в самом конце еще метка :eof вставлена.


Добавлено:
Nagual
А ты из идеологических побуждений не хочешь пользоваться sleep.exe? Тогда средствами винды можно задержку vbscript-ом делать. В начале батника вставляешь:
echo wscript.sleep wscript.arguments(0)>sleep.vbs
и в батнике, где нужна пауза, используй вместо пинга:
cscript sleep.vbs 500 > nul
Вместо 500(это время задержки в миллисекундах) пиши, сколько тебе надо. В конце батника del sleep.vbs
[offtop]
Про пинг в таких количествах - анекдот какой-то старый напоминает, типа в чат входит кулхацкер и вопрошает: "Дайте ай-пи какого нибудь чайника, просканить-завесить систему кому-нибудь хочу.". Ему говорят:"127.0.0.1". И со словами "Ща этот ламер умрет млин.." кулхацкер сваливает из чата...
[/offtop]
Автор: Nagual
Дата сообщения: 21.02.2007 15:12
igor_andreev
да, ашипачке грыматическее быле, но это не страшно, проработал на предмет заголовка, цветов, закольцевал и тд и тп

Код: @echo off
chcp 1251 >nul
color 0A & title _ _ _ _ _ _ _ _ _ .T. .H. .E. . .M. .A. .T. .R. .I. .X. _ _ _ _ _ _ _ _ _
mode con cols=80 lines=25

set _1_=Call trans opt: received. 2-19-98 13:24:18 REC:Log
set _2_=The Matrix has you, %username% ...
set _3_=Follow the white rabbit ...
set /a _i=1 && ping -n 6 -w 1000 loopback >nul

:_1_loop
call :_write %%_1_:~0,%_i%%%
set /a _i=%_i%+1 && cls if not "%_i%"=="52" goto _1_loop
call :_p0 && cls wait 300 && set /a _i=1 && goto _2_1_loop

:_2_1_loop
set /a _i=%_i%+1
echo ^
%random:~0,1% %random:~0,1% %random:~0,1% %random:~0,1%^
%random:~0,1% %random:~0,1% %random:~0,1% %random:~0,1%^
%random:~0,1% %random:~0,1% %random:~0,1% %random:~0,1%^
%random:~0,1% %random:~0,1% %random:~0,1% %random:~0,1%^
%random:~0,1% %random:~0,1% %random:~0,1% %random:~0,1%^
%random:~0,1% %random:~0,1% %random:~0,1% %random:~0,1%^
%random:~0,1% %random:~0,1% %random:~0,1% %random:~0,1%
call :_p0
if not "%_i%"=="30" goto _2_1_loop
set /a _i=1 && goto _2_2_loop

:_2_2_loop
set /a _i=%_i%+1
echo ^
%random:~0,2% %random:~0,2% %random:~0,2% %random:~0,2%^
%random:~0,2% %random:~0,2% %random:~0,2% %random:~0,2%^
%random:~0,2% %random:~0,2% %random:~0,2% %random:~0,2%^
%random:~0,2% %random:~0,2% %random:~0,2% %random:~0,2%^
%random:~0,2% %random:~0,2% %random:~0,2% %random:~0,2%^
%random:~0,2% %random:~0,2% %random:~0,2% %random:~0,2%^
%random:~0,2% %random:~0,2%
call :_p0
if not "%_i%"=="30" goto _2_2_loop
set /a _i=1 && goto _2_3_loop

:_2_3_loop
set /a _i=%_i%+1
echo ^
%random:~0,3% %random:~0,3% %random:~0,3% %random:~0,3%^
%random:~0,3% %random:~0,3% %random:~0,3% %random:~0,3%^
%random:~0,3% %random:~0,3% %random:~0,3% %random:~0,3%^
%random:~0,3% %random:~0,3% %random:~0,3% %random:~0,3%^
%random:~0,3% %random:~0,3% %random:~0,3% %random:~0,1%
call :_p0
if not "%_i%"=="30" goto _2_3_loop
set /a _i=1 && goto _2_4_loop

:_2_4_loop
set /a _i=%_i%+1
echo ^
%random:~0,2%%random:~0,2% %random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2% %random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2% %random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2% %random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2% %random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2% %random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2% %random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2% %random:~0,1%%random:~0,1%
call :_p0
if not "%_i%"=="30" goto _2_4_loop
set /a _i=1 && goto _2_5_loop

:_2_5_loop
set /a _i=%_i%+1
echo ^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%^
%random:~0,2%%random:~0,2%%random:~0,1%
call :_p0
if not "%_i%"=="30" goto _2_5_loop
set /a _i=1 && goto _2_6_loop

:_2_6_loop
set /a _i=%_i%+1
echo^
%random:~0,2%%random:~0,2%%random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2%%random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2%%random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2%%random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2%%random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2%%random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2%%random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2%%random:~0,2%%random:~0,2%^
%random:~0,2%%random:~0,2%%random:~0,2%%random:~0,1%
call :_p0
if not "%_i%"=="30" goto _2_6_loop
cls && ping -n 6 -w 500 loopback >nul && set /a _i=1 && goto _3_loop

:_3_loop
call :_write %%_2_:~0,%_i%%%
set /a _i=%_i%+1 && if not "%_i%"=="53" goto _3_loop
call :_p0 && cls && call :_p0 && set /a _i=1 && goto _4_loop

:_4_loop
call :_write %%_3_:~0,%_i%%%
set /a _i=%_i%+1 && if not "%_i%"=="52" goto _4_loop
call :_p0 && cls && call :_p0 && set /a _i=1 && goto _2_1_loop

:_write
color 0A
set p1=ping -n 1 -w 1000 loopback ^>nul ^&^&
cls && echo %* & %p1%%p1%%p1%%p1%%p1%%p1%%p1%%p1%%p1%%p1%%p1%goto eof

:_p0
ping -n 1 -w 1000 loopback >nul

:tl0
set /a rnd1=%random%%%10
set /a rnd2=%random%%%10
set /a rnd3=%random%%%10
set /a rnd4=%random%%%10
set /a rnd5=%random%%%10
set /a rnd6=%random%%%10
set /a rnd7=%random%%%10
set /a rnd8=%random%%%10
set /a rnd9=%random%%%10
set tl1=%rnd1% %rnd2% %rnd3% %rnd4% %rnd5% %rnd6% %rnd7% %rnd8% %rnd9%
set tl2=%rnd8% %rnd5% %rnd1% %rnd9% %rnd2% %rnd7% %rnd3% %rnd6% %rnd4%
if %rnd1%==0 color 0A
if %rnd1%==1 color 02
title %tl1% .T. .H. .E. . .M. .A. .T. .R. .I. .X. %tl2%

:eof
Автор: Elroir
Дата сообщения: 21.02.2007 15:37
K6

Цитата:
не мог быть написать как он выполняется в командной строке..?

Если ты про то, как его запускать, то так как написал KapralBel.
А если про что-то другое - сформулируй вопрос конкретнее.

Smitis

Цитата:
Это давно было. Чуть-ли не из ДОСа.

А там были длинные имена с пробелами?

Nagual
В чем смысл стольких ping-ов подряд, если можно регулировать параметр -n?
Автор: igor_andreev
Дата сообщения: 21.02.2007 15:52
Nagual

Цитата:
анекдот прикольный, наверное, к тебе относится

Ну в общем-то да, localhost в моем варианте был

Цитата:
vbs не хочу лишний раз пользоваться, когда можно обойтись стандартными средствами
cscript.exe - самое, что ни на есть стандартное средство, всегда лежит в папке system32 вместе с cmd.exe, ping.exe, chcp.com и прочими ...

Автор: Nagual
Дата сообщения: 21.02.2007 15:59
Elroir
все просто: у меня лично не получилось достичь желаемого эффекта, а именно, рукописного письма, играл всеми параметрами со всеми возможными значениями, поэтому решил сделать несколько пингов, в чем, собсна, проблема? один пинг или несколько? какая разница, главное, результат достигнут: используется чистый комсценарий и выводит рукописное письмо с нужной реалистичной задержкой
n пробовал, ставишь значение 2 и задержка становится непомерно большой, не говоря уж о больших значениях, промежуточного значения между целыми числами n нет
если есть способ застваить работать скрипт с использованием всего одного пинга длительностью примерно такой, какой я получил серией пингов, жду с нетерпением
Автор: Maza Faka
Дата сообщения: 21.02.2007 16:20
Elroir
Давно хотел спросить, откуда такие знания по командным сценариям? Поделись литературой, если есть...
Автор: Elroir
Дата сообщения: 21.02.2007 16:25
Nagual
Мда... в ping.exe видимо встроен механизм паузы между пингами. То есть если пинг один - выполняется очень быстро, а вот если их несколько, даже ограничивая время с помощью -w, все равно возникает задержка примерно в секунду. Так что я поторопился с одним ping-ом.

Цитата:
поэтому решил сделать несколько пингов, в чем, собсна, проблема? один пинг или несколько?

Да нет никакой проблемы - просто хочется красивого решения.
Автор: KapralBel
Дата сообщения: 21.02.2007 16:36
Maza Faka
Достаточно встроенной справки
и писать, писать, писать батнички
Автор: Elroir
Дата сообщения: 21.02.2007 16:39
Maza Faka

Цитата:
Давно хотел спросить, откуда такие знания по командным сценариям?

Опыт В далеком 1994-ом году, компьютера у меня еще не было, но я очень интересовался всем, что с ним было связано. И попалась мне книжка по MSDOS 6.20, с подробным описанием всех команд. Так я ее чуть-ли не наизусть выучил. До сих пор помогает. Потом уже, когда появился компьютер, начал писать батники для себя. Литературы как таковой не было и до сих пор нет. Чаще всего пользовался встроенной помощью по командам. Когда появился интернет - поиском. Залезал(и продолжаю залезать) в разные форумы - смотрел, как люди делают разные полезные и интересные вещи. Когда наткнулся на этот топик на ru-board, прочитал его вдоль и поперек.

Добавлено:
KapralBel
Автор: ViSiToR
Дата сообщения: 21.02.2007 20:35
Charm1

Цитата:
Нужно написать bat-ник, который удалит файлы из папки созданные не сегодня

По идее должно это сработать:


Код: @Echo off
Set Papka=C:\test
For %%I in (%Papka%\*.*) do (
Set FDate=%%~tI
Set FDate=%FDate:~-0,5%
If Not "%FDate%"=="%date%" del "%%I"
)
Автор: Smitis
Дата сообщения: 21.02.2007 22:08
Elroir

Цитата:
А там были длинные имена с пробелами?

Длинных имён, конечно не было. Но пробелы могут быть не только в именах.

Добавлено:
ViSiToR

Цитата:
По идее должно это сработать:

Ты забыл setlocal enabledelayedexpansion
Автор: ViSiToR
Дата сообщения: 22.02.2007 03:46
Smitis

Цитата:
Ты забыл setlocal enabledelayedexpansion

Неа, оно и с этим не работает, переменной %FDate% опять же присваевается пустое значение.
Автор: Elroir
Дата сообщения: 22.02.2007 03:49
ViSiToR

Цитата:
переменной %FDate% опять же присваевается пустое значение

А если использовать "!" вместо "%"?

Добавлено:

Код:
@Echo off
setlocal enabledelayedexpansion
Set Papka=C:\test
For %%I in (%Papka%\*.*) do (
Set FDate=%%~tI
Set FDate=!FDate:~-0,5!
If Not "!FDate!"=="%date%" del "%%I"
)
Автор: K6
Дата сообщения: 22.02.2007 05:49
Elroir

Да я бы хотел узнать какая команда что выполняет...т.е. подробное описание каждого жага в батнике....а то у нас учитель придерётся и загрузит
Автор: Maza Faka
Дата сообщения: 22.02.2007 08:29
Прошу не судить строго (bat-файлами увлёкся недавно), написал значит батник для поиска файлов на диске, получилось, но громоздко и не совсем красиво, может кто выложит свой батник для поиска файлов


Код:
@Echo off
Echo Type finding files
Set /p File=""
Echo.
Echo Please wait
For /r D:\ %%i in (*) do echo "%%i" >> 1.txt
Find "%File%" 1.txt >> 2.txt
If %errorlevel%==1 (Echo FIle not found) & (Del 1.txt) & (Del 2.txt) & (Goto End)
Type 2.txt
:End
Pause

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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