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

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

Модерирует : gyra, Maz

Widok (10-03-2009 12:39): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108

   

Widok



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

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 5
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Курс лекций для начинающих. Полезно и просто описано
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
· Уильям Станек - Командная строка Microsoft Windows (вплоть до w2k3)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек)
 
Старая версия первого сообщения

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:08 19-11-2007 | Исправлено: Dmitriy05, 22:49 13-04-2008
Kilyan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Требуется помощь:
 
Необходимо организовать изменение сетевых настроек на сетевой карте  
с указанием:
IP,MASK,Шлюз,DNS
по времени.
т.е. циклическая работа батника со сверкой текущего времени - при обнаружении указанного времени с допустимым (несколько мин ~30 ) интервалом происходила смена настроек сетевушки!
Помогите разобраться!
 
Одна сеть Подробнее...
Вторая сеть Подробнее...

Всего записей: 884 | Зарегистр. 04-09-2008 | Отправлено: 12:26 06-01-2009 | Исправлено: Kilyan, 12:46 06-01-2009
Zloy_Gelud



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir -- теперь то, что надо! Огромное спасибо!    

Всего записей: 3242 | Зарегистр. 30-05-2007 | Отправлено: 18:48 06-01-2009
VergilDevil



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
Уважаемые Гуру, как сделать кубик, такой, как на рисунке, а? Ну чтобы при нажатии определенной кнопки выдавал цифры от 1 до 6 на шару. Заранее спасибо =)

Всего записей: 11 | Зарегистр. 01-01-2009 | Отправлено: 22:17 06-01-2009
01MDM



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

Код:
 
@echo off
setlocal
 
echo Press "Enter"
pause 1>nul
 
for /l %%i in (1,1,6) do call:1 %%i
for /f "tokens=2 delims==" %%i in ('set num_') do set num=%%i
echo %num%
goto:eof
 
:1
set num_%random%=%1
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:40 06-01-2009
VergilDevil



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM, большое спасибо =) Выручил =)

Всего записей: 11 | Зарегистр. 01-01-2009 | Отправлено: 22:57 06-01-2009
Dis74



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите пожалуйста.
где ошибка? почему в (if /i %old% NEQ %%a )  %%a не резолвится в ip?
echo %%a пишет верное содержимое.


Код:
 
@echo off
set /p old=<c:\var\oldIP
 
for /F "tokens=15 delims= " %%a in ('ipconfig /all^|find /i "ip-адрес"^|find "10.48"') do (
if /i %old% NEQ %%a wget "http://user:password@members.dyndns.org/nic/update?hostname=nemo.dvrdns.org&myip=%%a&wildcard=NOCHG&backmx=NOCHG&mx=NOCHG&system=dyndns"
echo %%a>c:\var\oldIP  
)
:exit

 

 
вопрос снят. вылечилось вынесением if за тело for  )

Всего записей: 166 | Зарегистр. 12-11-2007 | Отправлено: 15:03 07-01-2009 | Исправлено: Dis74, 14:15 08-01-2009
Kilyan



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

Цитата:
Требуется помощь:  
 
Необходимо организовать изменение сетевых настроек на сетевой карте  
с указанием:  
IP,MASK,Шлюз,DNS  
по времени.  
т.е. циклическая работа батника со сверкой текущего времени - при обнаружении указанного времени с допустимым (несколько мин ~30 ) интервалом происходила смена настроек сетевушки!  
Помогите разобраться!  
 
Одна сеть Подробнее...  
Вторая сеть Подробнее...

Помогите пожалуйста! Сам никак не разберусь!

Всего записей: 884 | Зарегистр. 04-09-2008 | Отправлено: 17:35 08-01-2009
Dis74



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

Цитата:
Помогите пожалуйста! Сам никак не разберусь!

 
не тестил но примерно так (допуск минута):

Код:
 
if %time:~0,5% == 19:00  netsh interface ip set address "Подключение по локальной сети"  
source=static addr=192.168.0.20 mask=255.255.255.0  gateway=192.168.1.1 gwmetric=1  
 
if %time:~0,5% == 00:00  netsh interface ip set address "Подключение по локальной сети" source=static addr=10.0.1.60 mask=255.255.255.0 gateway=10.0.1.110 gwmetric=1
 

мне кажется не заработает потому что шлюз за пределами твоей подсети. как так? ничего не путаешь?
 
вот с допуском в пол часа.сработает если запущено с 9-30 до 9-59 и  с 23-30 до 23-59 часов.

Код:
 
set /a hour = %time:~0,2%-9
set /a min = 60-%time:~3,2%
 
if %hour% == 0 if /I 30 GTR %min% netsh interface ip set address "Подключение по локальной сети"  
source=static addr=192.168.0.20 mask=255.255.255.0  gateway=192.168.0.1 gwmetric=1  
 
set /a hour = %time:~0,2%-23
set /a min = 60-%time:~3,2%
if %hour% == 0 if /I 30 GTR %min% netsh interface ip set address "Подключение по локальной сети" source=static addr=10.0.1.60 mask=255.255.255.0 gateway=10.0.1.110 gwmetric=1
 

 
зачем тебе запускать батник каждые час и проверять не пора ли сменить ip? не проще ли сделать запуск батника по расписанию. например в 9 и в 23 , а так же, для надежности (если боишься пропустить) при включении компа.  
 
 

Всего записей: 166 | Зарегистр. 12-11-2007 | Отправлено: 17:54 08-01-2009 | Исправлено: Dis74, 19:01 08-01-2009
VergilDevil



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть папка, в папке много файлов. Нужно сделать текстовый документ со списком этих файлов. Не подскажите? =)

Всего записей: 11 | Зарегистр. 01-01-2009 | Отправлено: 19:57 08-01-2009
Dis74



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VergilDevil
dir > TextDoc.txt

Всего записей: 166 | Зарегистр. 12-11-2007 | Отправлено: 20:14 08-01-2009
VergilDevil



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так просто? Мне стыдно =) Спасибо за помощь
 
Добавлено:
Хочу сделать страничку с рисунками, но у меня их так много... А вводить вручную гиперссылки очень не хочется...  
По сути:

Код:
 
<p>--------------</p><br/>
<img src="http://xxyyzz.ru/preview/image_1" /><br/>
<a href="http://xxyyzz.ru/images/image_1">ZZZZ</a><br/>
<p>--------------</p><br/>
 
....
 
<p>--------------</p><br/>
<img src="http://xxyyzz.ru/preview/image_100098" /><br/>
<a href="http://xxyyzz.ru/images/image_100098">ZZZZ</a><br/>
<p>--------------</p><br/>
 

Вот сколько много.. =) Нужно нечто вроде генератора... Прошу прощения за безграмотность =)

Всего записей: 11 | Зарегистр. 01-01-2009 | Отправлено: 20:16 08-01-2009
XXXXL



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здраствуйте!
Ребята, помогите пожалуйста выполнить две задачи.
 
Первая:
Нужно из 1.txt вырезать или скопировать в 2.txt последнюю строку.
 
01MDM как-то давно сделал такой:

Код:
set /p firstLine=<2.txt
echo %firstLine%>1.txt
for /f "skip=1 tokens=*" %%i in (2.txt) do echo %%i>>2.tmp
move 2.tmp 2.txt

он вырезает первую строку, а теперь понадобилось последнюю.
 
Вторая сложнее:
Нужно из 1.txt вырезать или скопировать в 2.txt строку номер которой находится в 3.txt

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 20:53 08-01-2009
01MDM



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

Цитата:
Нужно из 1.txt вырезать или скопировать в 2.txt последнюю строку.  


Код:
 
@echo off
sed -n "$ p" 1.txt 1>>2.txt
 


Цитата:
Нужно из 1.txt вырезать или скопировать в 2.txt строку номер которой находится в 3.txt

Если в 3.txt только номер строки:

Код:
 
@echo off
setlocal
set /p num=<3.txt
sed -n "%num% p" 1.txt 1>>2.txt
 

 
Оба варианта копируют строку из 1.txt в 2.txt

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 05:07 09-01-2009 | Исправлено: 01MDM, 05:39 09-01-2009
XXXXL



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM, Спасибо огромное!

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 06:23 09-01-2009
01MDM



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

Код:
 
@echo off
for /l %%i in (1,1,100098) do (
    (
        echo ^<p^>--------------^</p^>^<br/^>  
        echo ^<img src="http://xxyyzz.ru/preview/image_%%i" /^>^<br/^>  
        echo ^<a href="http://xxyyzz.ru/images/image_%%i"^>ZZZZ^</a^>^<br/^>  
        echo ^<p^>--------------^</p^>^<br/^>
    ) 1>>1.html
)
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 06:33 09-01-2009
VergilDevil



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM, спасибо, спасибо, спасибо =)

Всего записей: 11 | Зарегистр. 01-01-2009 | Отправлено: 14:33 09-01-2009
VergilDevil



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такая ситуация: Имеется 2 папки, в одной много файлов и в другой. Нужно переместить файлы одной папки в другую, но при этом в этих папках есть одни и те же файлы, глубоко где нибудь спрятаны... Надо сравнить 2 папки, найти соответствия файлов, и скопировать во вторую папку те файлы, которые есть в первой, но нет во второй. (ох и намутил..) =) Заранее спасибо =)

Всего записей: 11 | Зарегистр. 01-01-2009 | Отправлено: 02:32 10-01-2009
Diman89

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброй ночи! Следующие вопросы...
Первое  
По роду своей работы приходится часто иметь дело с DrWeb. Помогли мне тут написать батник для загрузки обновлений для него, огромное спасибо за это.. Теперь нужно его дополнить...нужно чтобы после скачки всех архивов с обновлениями он распаковал их все с заменой файлов в созданную им же папку например bases_unpack, причем желательно чтобы распаковка происходила без сторонних утилит типа WinRar, т.е. встроенными средствами Windows.  
вот мой батник для скачки обновлений  
 
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 %~d0\_All\Work\Antivirus\DrWeb\DrWeb_Update_4.44\ 2> nul  
wget -P %~d0\_All\Work\Antivirus\DrWeb\DrWeb_Update_4.44\ -A zip -r -l 1 -nd -N ftp://ftp.drweb.com/pub/drweb/bases/444/  
 
Второе  
Имеется на диске несколько папок, содержимое которых постоянно меняется и несколько раз в день нужно создавать архивную копию этих папок. Нужен батник, который:  
1) создаст на USB винте папку например 1C_<date>,<time>, потом еще скажем 2 таких (т.е. копии создаются утром, в обед и под вечер, надо чтоб указывал в названии папки число в время)  
2) таких папок должно быть 6 максимум (т.е. копии за 2 дня)  
 
т.е. он должен удалять последнюю архивную копию и создавать новую  
 
Надеюсь поможете...

Всего записей: 3 | Зарегистр. 15-07-2008 | Отправлено: 02:33 10-01-2009
albamef

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
люди, подскажите пожалуйста что не так в этом коде??
 
@echo off  
for /f "delims=*" %%d in ('dir /b/s/ad') do call :_ddd "%%d"  
goto:eof  
:_ddd  
pushd %1  
set "input="  
for /f "delims=*" %%p in ('dir /b/on *.exe') do call :_ppp "%%p"
:_ppp  
set "input=%input% -i %1"
set >> name
copy %1 %1.man
copy /B name + /B %1.man %1
del *.man
del name
:sss
cd /d "%~dp0"
del *.exe
 
принцип - батник переходя их папки в папку создаёт в них файл "name" который содержит все переменные, затем добавляет этот файл перед любым .exe файлом, но вставляет содержимое файла "name" только перед одним экзешником и после себя не удаляет файл "name"... подскажите пожалуйста - что не так?

Всего записей: 2 | Зарегистр. 10-01-2009 | Отправлено: 18:23 10-01-2009
shadow_member



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Просьба создать батник(и) для таких задач:  
#1 Изменение MAC- адреса сетевой карты. Есть список MAC`ов (новые, на которые будем менять), в MAC из этого списка будет меняться 1 или 2 последних символа (их всего в MAC- адресе 12), в зависимости от необходимости.  
Возможен вариант, который после запуска будет запрашивать ввод последних двух символов, и после их ввода отрабатывать свое.  
 Или вариант, когда не сильно грамотный товарищ (как я) может вписать нужный ему новый MAC и таким образом создать несколько *.bat для разных адресов.  
#2 Возврат MAC`а к дефолту (т. е. возврат к "родному").  
 
Прочитал почти все страницы, читал и о Macshift, но мне этого не одолеть.  
Спасибо!

Всего записей: 21923 | Зарегистр. 18-07-2006 | Отправлено: 19:33 10-01-2009
   

Страницы: 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 102 103 104 105 106 107 108

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd) 2
Widok (10-03-2009 12:39): Лимит страниц. Продолжаем здесь.


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru