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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
duh_S

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

Код:
 
@Echo Off
:BEGIN
CHDIR C:\zyxel-reloader
SLEEP 600
Set cWork=0
Call :CompWork 192.168.0.118
If %cWork%==0 (Goto :reloader)
GoTo :BEGIN
 
:CompWork
Echo Ping %1
Ping -n 3 %1 >Nul
If ErrorLevel 1 (Goto :BEGIN)
If ErrorLevel 0 (Set cWork=1)
GoTo :BEGIN
 
:reloader
CALL ZTnBatch -h 192.168.1.1 -timeout 15000 -p parol -timeout 15000 -c "sys reboot"
GoTo :BEGIN
 

цель кода - перезагрузка шлюза, если он подвис (не отвечает на ping)  
 
здесь  

Код:
 
ZTnBatch
 
- утилита доступа к шлюзу
 
также вопрос  

Код:
 
Echo Ping %1
Ping -n 3 %1 >Nul
If ErrorLevel 1 (Goto :BEGIN)
If ErrorLevel 0 (Set cWork=1)
 

результатом отсутствия 1,2-ух пингов но при наличии 3-го ErrorLevel 1 или ErrorLevel 0? при отсутствии 3х пингов ErrorLevel 0?

Всего записей: 66 | Зарегистр. 28-08-2007 | Отправлено: 02:11 11-01-2009 | Исправлено: duh_S, 02:13 11-01-2009
emfs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задача следующая:
 
1. Скачать несколько архивов с разных адресов
2. Запустить программу
3. Закачать созданные архивы на несколько адресов
 
В данный момент приём и передача (шаг 1 и шаг 3) идут по очереди в cmd-файле.
Можно ускорить, если запустить одновременно все потоки (каналы разные, поэтому скорость не упадёт). Но нужно отследить момент, когда все архивы скачаются, и только после этого запустить программу (шаг 2).
 
Саму передачу параллельно запустить-то легко, а вот как из cmd отследить, что скачались все архивы, и если скачались, то запустить одну программу, если нет, то другую?

Всего записей: 900 | Зарегистр. 09-07-2007 | Отправлено: 08:13 11-01-2009
Grim_Repo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, подскажите, возможно ли сделать так чтобы батник сам вставлял в поле set /p содержимое буфера обмена? И еще - как сделать чтобы батник проверял количество символов переменной (например, если нужно узнать сколько символов в переменной %number%)
 
Заранее, спасибо!

Всего записей: 397 | Зарегистр. 02-05-2006 | Отправлено: 13:47 12-01-2009
Zakkazak



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

Всего записей: 995 | Зарегистр. 12-01-2005 | Отправлено: 18:37 12-01-2009
leonnash

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите найти ошибку
надо разбить вывод ipconfig /all, так чтобы характеристики каждого адаптера сохранились в отдельный файл
 

Код:
del *.tmp
set out=1
echo .>int%out%.tmp
ipconfig /all > current2
for /f "tokens=*" %%i in (current2) do (
 echo %%i ^| findstr Ethernet
 if errorlevel == 0 set /a out = out +1
 echo .%%i >>int%out%
)
 

Всего записей: 17 | Зарегистр. 29-12-2005 | Отправлено: 17:11 13-01-2009 | Исправлено: leonnash, 21:39 13-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 | Отправлено: 01:36 14-01-2009
Elroir



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

Код:
 
@echo off
setlocal enabledelayedexpansion
del *.tmp  
set out=1  
echo .>int%out%.tmp  
ipconfig /all > current2  
for /f "tokens=*" %%i in (current2) do (  
echo %%i | findstr Ethernet>nul  
 if not errorlevel 1 (set /a out+=1)
 echo %%i >>int!out!

)  
 


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 11:53 14-01-2009 | Исправлено: Elroir, 12:00 14-01-2009
Kilyan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос может и глупенький но все же:
 
как можно допится вывода сообщений командой echo(руским а не кракозяблами), если ком.файл создан с кодировкой win1251 ansi?

Всего записей: 884 | Зарегистр. 04-09-2008 | Отправлено: 14:00 14-01-2009
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kilyan
Поставить в начало батника команду "chcp 1251>nul"

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:05 14-01-2009
Kilyan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
это я так понимаю - если в файл-тогда получается и кодировка win1251 ansi
 
а в окне исполнения - так же кракозяблы!

Всего записей: 884 | Зарегистр. 04-09-2008 | Отправлено: 14:29 14-01-2009
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kilyan
Проверь, что шрифт в консольном окне - это Lucida Console

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:00 14-01-2009
Kilyan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Ты просто гений,  наверное!... А ведь прав... Огромное человеческое спсб....
Пол гугля проискал... но такого ответа не нашел... спасибо

Всего записей: 884 | Зарегистр. 04-09-2008 | Отправлено: 15:15 14-01-2009
CTrator



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста со скриптом
 
 
for %B in (*.txt) do (echo %B & move \Doc)
 
говорит непредвиденное появление B
по идее этот скрипт находит все файлы с форматом txt и перемещает их в папку doc
Зарание Спасибо)

Всего записей: 3 | Зарегистр. 14-01-2009 | Отправлено: 16:25 14-01-2009
Elroir



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

Код:
 
for %%B in (*.txt) do (echo %%B & move "%%B" \Doc)
 

А чем не подходит команда

Код:
move *.txt \Doc\

?
Кстати, и тот и другой код обрабатывает только файлы в текущей директории.


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:54 14-01-2009
CTrator



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Спасибо, но теперь проблема в том что принципе он копирует в папку doc, но при открытии папки там пусто....??

Всего записей: 3 | Зарегистр. 14-01-2009 | Отправлено: 17:29 14-01-2009
Angel_Dmitriy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!ПОМОГИТЕ ПОЖАЛУЙСТА!!!
Проблема такая:
Устанавливаю программу запуском файла install.cmd
 
                       install.cmd
@ECHO OFF
ECHO !!!“бв -®ўЄ  Microsoft Office 2007!!!
setup.exe /config Enterprise.WW\config.xml
ECHO !!!ѓЋ’Ћ‚Ћ!!!
pause
exit
 
(Кракозябры это русский шрифт)
 
При запуске непосредственно этого cmd-ника(двойной клик мышей) все работает как надо....НО при запуске этого файла посредством другого командника(скажем 1.cmd)
ничего не получаеться......
 
примеры:
 
При варианте 1):
 
start  "\нужный путь....\install.cmd" (ковычкм т.к есть пробелы в пути адреса)
 
открываеться еще одно окно cmd.exe(тоже чтои при Пуск-Выполнить-cmd.exe) и больше ничего не происходит!!!
 
При варианте 2)
 
CALL  "\нужный путь....\install.cmd" (ковычкм т.к есть пробелы в пути адреса)
 
все вроде идет норм.... install.cmd начинает выполняться....... НО  после того как доходит до строки с "setup.exe"   вываливаеться сообщение типа  "Для изменения настроек Windows зайдите туда-то....."  тоесть запускает не мой setup.exe  а какол-то другой......
 
Проблема не в проге т.к такая же беда и с другими приложениями запускающимися подобным образом....
 
 
ПОВТОРЮСь...... при непосредственном запуске install.cmd (двойной клик мышью) все нормально работает!!!
ХЕЛП!!!!

Всего записей: 1 | Зарегистр. 14-01-2009 | Отправлено: 20:05 14-01-2009
korosya

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго времени суток!
Есть две задачки. Огромная просьба помочь в решении.
 
1. Батник записывается в виде  
 
cmd /c "комманда1&&команда2&&...командаN"
 
возможно ли в такой конструкции организовать так, чтобы сначала выскакивало окно, в котором бы задавался вопрос типа "Продолжить ?" и были бы две кнопки ОК и Отмена. При нажатии на Отмена - обработка команд завершается, при нажатии на на ОК - выполняется следующая команда. Окно должно быть не cmd, а нормального виндузового вида.  
 
2. Есть два текстовых файла. Один полностью юникодный (содержаться строки на разных языках). Задача: удалить из юникодного файла строки, в которых содержатся определённые слова. Список слов - во втором файле. Возможно есть какая-нибудь утилита, которая поможет решить эту задачу из комстроки?

Всего записей: 972 | Зарегистр. 19-07-2003 | Отправлено: 22:33 14-01-2009
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CTrator
Э... где находится папка Doc, в которую надо перенести файлы (полный путь к ней)?
 
Angel_Dmitriy

Код:
 
@ECHO OFF  
ECHO !!!“бв -®ўЄ  Microsoft Office 2007!!!  
pushd "%~dp0"
setup.exe /config Enterprise.WW\config.xml
popd
ECHO !!!ѓЋ’Ћ‚Ћ!!!  
pause  
exit
 


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:35 14-01-2009
z3r



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

Код:
date /t >> 1.log
time /t >> 1.log
ping ya.ru | find "TTL=">> 1.log      
if errorlevel 1 (
rasdial /disconnect >> 1.log
rasdial 192.168.111.254 user password >> 1.log)
if errorlevel 0 (
echo "OK" >> 1.log)
 

Есть вот такой батник.  
1) Как сделать вывод в одну строку? То есть дату и время в лог файл записать в одной строке
2)Как опросить несколько хостов и если на все n хостов не будет идти пинг переподключится. А если будет на один то ничего
3) И еще нужно сделать чтобы название файла было датой. То есть каждый день новый файлик?
4) Еще читал про приятную мелочь типо set output чтобы не каждый раз указывать куда выводить а один раз в начале файлика! Можно поподробнее как ей пользоватся?
 

Всего записей: 91 | Зарегистр. 29-03-2007 | Отправлено: 00:00 15-01-2009
Kondrbr



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу всё-таки обратица напрямую к парням, которые шарят, т.к. замучился читать.
Вопрос... Надо сделать batник значком на рабочем столе! При запуске которого запускается игра, но:
1. запуск YASU, где автоматом включается кнопка Cloack  
2 загружается образ игры в DAEMON Tools
3 запускается сам EXEшник игры из его папки
4 и все эти операции при свёрнутом окне cmd.exe
 
Из одной игры я вытащил batник и мудрю с ним. У меня получилось сделать первые два шага моей просьбы, а с остальным я уже замучился.
Вот пример моего batника:
 
cd !Mount
START /w MountDT4.exe  
Wait4IM.exe 0xCC1669CD
rem @echo off
YASU.exe -c -s
bin\MySims.exe
rem @echo on
rem @echo Please, wait 30 seconds...
rem @echo Пожалуйста, подождите 30 секунд...
rem @echo off
rem START /w RunCRK.exe
myrun.EXE
rem START YASU.exe -x -s
rem START /w UNMountDT4.exe
cd ..
rem @echo on

Всего записей: 17 | Зарегистр. 20-06-2005 | Отправлено: 02:53 15-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