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

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

Модерирует : KLASS, IFkO

vu1tur (14-11-2006 16:59): http://forum.ru-board.com/topic.cgi?forum=62&topic=9040  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hacsoft

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задачи на bat-файлах
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Набор GNU утилит для win32
· Встроенный справочник по командам: hh ntcmds.chm
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
 
Готовые решения и частые вопросы:
· Создание листинга директорий на примере создания плейлиста
· Разименовывание переменных
· Переименовывание файлов по дате создания
· Запуск сетевого подключения
· Запуск bat файлов как сервис
· Пример выполнения команд по результату команды ping
· Использование даты на день раньше чем сегодня
 
Невозможности — что нельзя сделать с помощью командных файлов:
· изменть конфигурацию IP на удаленной машине (без помощи rcmd.exe) [добавил ALEF]
 
 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Старая версия первого сообщения

Всего записей: 116 | Зарегистр. 18-11-2005 | Отправлено: 22:58 18-11-2005 | Исправлено: Elroir, 05:50 11-11-2006
Elroir



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

Цитата:
ping -n 1 192.168.1.1>Nul

замени на
Код:
ping -n 1 192.168.1.1 | find "TTL=" >nul
 

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:31 30-10-2006 | Исправлено: Elroir, 18:32 30-10-2006
sD31337

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

Всего записей: 30 | Зарегистр. 27-10-2006 | Отправлено: 20:49 30-10-2006
Shish_kebab



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Нет никаких параметров не передаю, все имена файлов известны.

Цитата:
if %~z2 GTR %~z1 goto :EOF  
copy /y %1 %2 > nul  

Чего то я не допонял, у меня выдал сообщение ещё сравнить ? и на этом всё .....(копировать не стал)

Всего записей: 372 | Зарегистр. 14-07-2005 | Отправлено: 21:09 30-10-2006
Elroir



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

Цитата:
все имена файлов известны

Понял - тогда так:

Код:
 
@echo off
setlocal
 
rem Change to your file and folder names here
set file_name=file1
set fold_name=papka1
 
if not exist "%fold_name%\%file_name%" (  
copy "%file_name%" %fold_name%\
goto :EOF
)
call :comp "%file_name%" "%fold_name%\%file_name%"
goto :EOF
:comp
if %~z2 GTR %~z1 goto :EOF
copy /y %1 %2
 

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:34 30-10-2006
ViSiToR



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

Цитата:
чтобы при запуске винды расшаривались диски ?

Что значит “расшаривались”?

----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 00:35 31-10-2006
Shish_kebab



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

Цитата:
%~z2  

Это и есть размер второго файла ?

Всего записей: 372 | Зарегистр. 14-07-2005 | Отправлено: 00:37 31-10-2006
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shish_kebab
Да. %2 для :comp - это, в данном случае, papka1\file1, a модификатор ~z дает его размер.

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:46 31-10-2006
vzbzdnov



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

Цитата:
 Как отделить "зёрна от плевел" - т.е. нужные книги от всего остального?  
2) Что проверять на "свежесть" - архивы или файлы в архивах?  

Опс! Сорри. Книги имеют расширение либо .txt, либо .doc, либо вообще не имеют. Картинки jpg, bmp или gif.  Желательно оставить последний по времени файл. RAR с этим легко справляется - override older

----------
|^^^пиво^^\\|""\\_,_
|___________||___|__|)
(@)(@)""*|(@)(@)**(@)

Всего записей: 3946 | Зарегистр. 27-03-2002 | Отправлено: 05:17 31-10-2006
student123

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток,
помогите с очень простым вопросом... хотелось бы в *.bat использовать wildcardы, в которые включены не только * и ?, а подставлять символы из определенного набора или использовать  любую цифру....указание в [abc] символов не помогает. Подскажите как использовать такие wildcardы?

Всего записей: 1 | Зарегистр. 31-10-2006 | Отправлено: 15:08 31-10-2006
Dobrii

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как получить имя текущего пользователя и вырезать из него первые три буквы?
Батник такой
net use y: \\server\start
start y:\prog.exe /username
 
так вот /username это первые три буквы от имени пользователя.

Всего записей: 137 | Зарегистр. 15-03-2006 | Отправлено: 15:28 31-10-2006
ViSiToR



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

Цитата:
Как получить имя текущего пользователя и вырезать из него первые три буквы?

 

Код:
net use y: \\server\start  
start y:\prog.exe /%username:~3%


----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 17:34 31-10-2006
sD31337

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ViSiToR
извените нсли непонятно написал
ну кароче как сделать чтобы команда net share 123=c:\ прописывалась в риестор и при входе в винду открывался общий доступ к диску с: , и еще маленький вопрос  
как поставить приаритеты выполения команд например
1.mkdir  
2.net share
3.....   и т.д.

Всего записей: 30 | Зарегистр. 27-10-2006 | Отправлено: 22:19 31-10-2006
Elroir



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

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

Почти так, как написал ViSiToR, только он понял слово "вырезать", как "удалить из имени".

Код:
 
start y:\prog.exe /%username:~0,3%
 

 
 

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:30 31-10-2006
ViSiToR



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

Цитата:
как сделать чтобы команда net share 123=c:\ прописывалась в риестор

 
Примерно так:
 

Код:
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /f  /v "NetShare" /t "REG_SZ" /d "%windir%\system32\cmd.exe net share 123=c:\\"

 

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

Еси я правильно понимаю, то приоритет ставится порядком набора команд. Т.е если в батнике первой командой будет ping, то она и будет иметь наивысшый приоритет - Последующая команда, не выполняется до тех пор, пока предыдущая не выполнена.
 
Если имеется в виду приоритет запуска по входу в систему, то думаю без внешних утилит не обойтись... хотя может и самим батником можно, но я не знаю как.
 
Elroir
 

Цитата:
Почти так, как написал  

Ну да, я просто не обратил внимание на нижнюю строчку  

----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 00:07 01-11-2006
Elroir



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

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

Средствами операционной системы - никак. Встроенной поддержки регулярных выражений нет.  
 
 
Добавлено:
ViSiToR

Цитата:
просто не обратил внимание  

Я так и понял

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:38 01-11-2006
w8er



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
добрый день  
не поскажите текст бат файла который бы делал следующее :
есть 2 разных компьютера на которых программа лежит в разных местах
1) c:\sys\111\prog.exe
2) c:\program files\111\prog.exe
хотелось бы чтобы при запуске бат файла он проверял наличие первого пути и если есть таковой то запускал бы оттуда + закрывался сам, а если нет проверял второй путь ( естественно если по обоих путей не существует батник должен просто закрыться )

Всего записей: 9 | Зарегистр. 26-07-2006 | Отправлено: 08:00 01-11-2006
Elroir



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

Код:
 
@echo off
if exist c:\sys\111\prog.exe (
c:\sys\111\prog.exe
goto :EOF
)
if exist  "c:\program files\111\prog.exe" "c:\program files\111\prog.exe"
 

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 11:26 01-11-2006
liberator



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Парни, помогите кто нибудь решить следующую задачу...Алгоритм вроде простой, но блин я запарился его в батнике реализовать-жопа просто...Работа с датой:
Задача:Дана начальная дата, "пробежаться" от начальной до текущей даты увеличивая день с шагом один день.
Алгоритм
1.Сохраняем реальную(текущую) дату 01.11.06
2.Задаем дату от которой нужно будет пробежаться по циклу. допустим 29.10.06
3.Создаём промежуточную переменную и приравниваем её к реальной дате 01.11.06
3.Делаем текущую дату равной начальной 29.10.06
4.Вот дальше загвоздка...точнее две, как сделать цикл дат, и как их сравнивать?
Сравниваем дату, если текущая дата<реальной, то день++
5.Устанавливаем изменённую на 1 день дату.

Всего записей: 980 | Зарегистр. 13-05-2005 | Отправлено: 11:51 01-11-2006
Nagual



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хай люди!
Такая задача: в локальной сети необходимо найти определенный мак-адрес сервера, исходя их этого получить его ip-адрес и выставить на локальной рабочей станции этот ip-адрес как проски сервер по умолчанию.
Для чего нужно? У сервера локальный ip -- данамический, и рабочие станции частенько его теряют. Каждый раз сообщать свой ip всем раб станциям довольно муторно, хотелось как то автоматизировать... Спасибо.
 

Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 19:09 01-11-2006
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nagual
Каким образом это касается темы
Цитата:
Задачи на bat-файлах
?

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:53 01-11-2006
   

Страницы: 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

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах
vu1tur (14-11-2006 16:59): http://forum.ru-board.com/topic.cgi?forum=62&topic=9040


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru