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

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



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Elroir Огромное спасибо ... проверю сегодня в одном месте  
ну и завтра с утра на втором компьтере

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
спасибо тебе большое за то что откликаешся на мои вопросы )

Всего записей: 30 | Зарегистр. 27-10-2006 | Отправлено: 21:36 01-11-2006
Nagual



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

Цитата:
Nagual  
Каким образом это касается темы  
Цитата:Задачи на bat-файлах  
 
?

К чему этот вопрос?

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
мне нада вывести окошко на экран как это можно сделать при помощи bat ? я делаю так
echo mesaga=msgbox ("zagolovok" ,80, "tekst okna")>msg.vbs
start msg.vbs
есть ли другие способы ? и еще как ставить задержу а то у меня не получается  
пример:
@echo off
echo mesaga=msgbox ("zagolovok" ,80, "tekst okna")>msg.vbs
start msg.vbs
del msg.vbs
 
 
задача мне нужно чтобы после запуска файла msg.vbs он был удален у меня не получается его удалить потамучто если последняя строка del msg.bat выполняется окно не выводится

Всего записей: 30 | Зарегистр. 27-10-2006 | Отправлено: 21:51 01-11-2006 | Исправлено: sD31337, 21:59 01-11-2006
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nagual
Вопрос был к тому, что тебе нужно решить вопрос нахождения MAC-а и IP адреса, а здесь топик по командным файлам. Если же ты знаешь как это сделать, но нужна помощь в написание батника - тогда напиши как ты это делаешь.
P.S Если я чего-то понял неправильно - извини.
 
sD31337

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

Пожалуйста

Цитата:
вывести окошко на экран

Что-бы окошко появлялось, а только потом удалялся файл, запускай так:

Код:
start /wait msg.vbs


Цитата:
как ставить задержу  

В шапке есть ссылка на пакет утилит для организации интерфейса. В нем есть утилита HS_DELAY. В том же пакете есть утилита HS_MESSAGE для вывода диалогового окна.
 
 
 

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:45 01-11-2006 | Исправлено: Elroir, 22:47 01-11-2006
Nagual



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Если бы я знал как это делается, я бы сюда не писал.
Может несколько расплывчато описал задачу?
Попробую еще раз.
Есть сервер в сети. Известен только его мак-адрес.
Нужно: Определить по этому маку текущий ip этого сервера (так как ip динамический и меняется довольно часто) и прописать этот ip адрес в настройках прокси сервера локальной машины (рабочей станции) в настройках "Свойств Обозревателя".
Сделать это командным сценарием думаю можно.
Примерно думаю, как это можно сделать: командой getmac получить мак сервака по сети, далее по маку определить его ip, далее ipconfig, netsh и тд для локального изменения настройки прокси сервера на тот сервер, чей мак-адрес известен.
Если бы знал как это все связать и написать я бы сюда не обращался, а написал бы сам, так что вопрос, типа ты сюда зашел или нет, вовсе не в тему...

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



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

Цитата:
как ставить задержу

Можно ещё так попробовать (чтобы окно батника не висело до нажатия на ОК в msgbox):
 

Код:
@echo off
echo mesaga=msgbox ("zagolovok" ,80, "tekst okna")>msg.vbs
start wscript msg.vbs
ping -n 2 localhost > nul
del msg.vbs


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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nagual
Имя прокси-сервера известно? Оно не меняется? Какой порт у прокси?

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я свою задачу сделал так. Но мне не нравится. Надо запускать два батника #Loop и #Update. Кромк того. пока не додумал, куда всунуть перекодировку.
Посоветуйте, как переделать
-----------#Loop.bat--------
@echo off
cls
If /I x%4 EQU x goto err  
if not exist %1 goto err
if not exist %2 goto err
if not exist %3 goto err
if not exist %4 goto err
if not exist %4\tmp md %4\tmp
for /D %%I in (%1\*) do @one %2 %3 %4 "%%~fI" "%%~nxI"
rd %4\tmp
goto end
:err
echo Usage #Loop "In Dir" "Out Dir" "Log Dir" "tmp Dir"
:end
----------One.bat-----------
@echo off
rem %1 is out dir  
rem %2 is log dir  
rem %3 is tmp dir  
rem %4 is input path  
rem %5 is input subdir  
If x%5==x goto err  
@del /q %3\tmp\*.*
"c:\Program Files\WinRAR\WinRAR.exe" E -ibck -o+ -cl -inul -ed -ilog%2\%5.inp %4\*.zip %3\tmp
@if exist %3\tmp\*.diz del %3\tmp\*.diz > nul
@if exist %3\tmp\*.jpg del %3\tmp\*.jpg > nul
@if exist %3\tmp\*.jpeg del %3\tmp\*.jpeg > nul
@if exist %3\tmp\*.gif del %3\tmp\*.gif > nul
@if exist %3\tmp\comment*.* del %3\tmp\comment*.* > nul
@if exist %3\tmp\* echo created %1\%5.zip
@if exist %3\tmp\* "c:\Program Files\WinRAR\WinRAR.exe" A -ibck -afzip -cl -ep -ep1 -inul -ed -ilog%2\%5.out %1\%5.zip %3\tmp\*.*
goto end
:err
echo Usage #Loop "In Dir" "Out Dir" "Log Dir" "tmp Dir"
:end
----------------#Update.bat-----------
@echo off
cls
if x%2==x goto err
if /I x%3 NEQ x goto err
for /R %1 %%I in (*) do @match %2 "%%~nI" "%%~nxI" "%%~tzI" "%%~dpI"  
goto end
:err
echo Syntax #UPDATE "To dir" "From dir"  
:end
--------------match.bat---------------
@echo off
rem %1 is from dir
rem %2 is file name only
rem %3 is file name and extention
rem %4 is file date and size
rem %5 is file full path
if x%5==x goto err
for /R %1 %%I in (%2.*) do if /I "%%~nxI" EQU %3 (if exist "%%I" (if /I "%%~tzI" NEQ %4 echo copy "%%I" %5))
for /R %1 %%I in (%2.*) do if /I "%%~nxI" EQU %3 (if exist "%%I" (if /I "%%~tzI" NEQ %4 copy "%%I" %5))
goto end
:err
echo Must be called from #UPDATE "To dir" "From dir"  
:end
----------------

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

Всего записей: 3946 | Зарегистр. 27-03-2002 | Отправлено: 05:00 02-11-2006 | Исправлено: vzbzdnov, 05:01 02-11-2006
Nordwig



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые мудрецы, есть проблемка с написанием одного скрипта. Что-то я недопонимаю. Суть в от в чем. К примеру, есть auoexec.bat d 98, надо его переписать, допустим в файл с расширением .bak. И не просто переписать, но и вставить определенную строку в определенное место. Вставляю, но почему-то знак "=" заменяеться на пробел. В другом файле, в котором много пробелом (подстрок) не все строки пишуться, тока до пробела. Что не так делаю? Мой код:
в качестве параметра используються имя файла, число строки, в которую надо вставить нужную строку и сама строка в двойных ковычках. Система ХР
 
@echo off
@set dep=
@set nam=
@set kol=
@set str=
@set name=
@set dep=0
@set dat=%date%
@set tim=%time%
@set nam=%1
@set kol=%2
@set str=%3
@set name=%nam:~0,-4%.bak
@set str=%str:~1,-1%
@echo rem Дата изменения  ,-3% > %name%
for /f "usebackq delims=," %%I in (%nam%) do call :re %%I
GoTo :EOF
:re
@set /a dep +=1
@echo %dep%
@if %dep% EQU %kol% @echo %str% >> %name%
@echo %1 >> %name%

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nordwig
1. В команде for, добавь параметр tokens=* в этом случае %%I получает строку файла от начала до конца.  
2. Зачем нужен "delims=," ?
3. Не нужно ставить символ "@" перед каждой командой. Достаточно первой строчки - @echo off.
4. Некоторые специальные символы не могут быть выведены (без значка ^) командой echo.
5. Знак "=" у меня записался в файл нормально - пробовал такую строчку:
     echo Device=Himem.sys >> file.
6. Для того, чтобы избавится от кавычек, можно воспользоваться модофикатором "~",
например set str=%~3 (это вместо set str=%3, set str=%str:~1,-1%).
7. Также есть модификатор для имени файла "~n" ( set name=%~n1.bak ).
 

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
все верно, tokens=* поставил, и раньше был, пропустил, тока показывает вместо строк знак "%i"  (это в последней строке @echo %1 >> %name% вместо %1, а если осатвить %1, то тока до пробела)

Всего записей: 5 | Зарегистр. 02-11-2006 | Отправлено: 14:03 02-11-2006
Adriano86

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а можно ли батником включить подключение по локальной сети? если да то как?

Всего записей: 4 | Зарегистр. 02-11-2006 | Отправлено: 16:18 02-11-2006
Snegov1k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
Есть строка  
FOR %%a in (C:\1\*.rar) do send.cmd %%a
 
вызывающая  
 
Почтовик.EXE Всякие_параметры_отправки_и_присоединяющий(А)_файлы  /A%1 и_еще_параметры.
 
в 2000 работает без проблемм, а вот в 2003 зависает при отправки 1го архива.
 
Есть ли разница в выполнении команд в win 2003 server и 200 ?

Всего записей: 48 | Зарегистр. 12-10-2006 | Отправлено: 16:40 02-11-2006
Elroir



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

Цитата:
а если осатвить %1, то тока до пробела

В строчке for, заключи в кавычки последний %%I (call :re "%%I"), а в последней строчке используй %~1 вместо %1 (echo %~1 >> %name%).

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
респект!!!
получилось
Огромное спасибо
вот тока почему в хелпе не сказано про ковычки, или я не внимательно читал?
Буду дальше изучать!
Еще раз спасибо  

Всего записей: 5 | Зарегистр. 02-11-2006 | Отправлено: 20:10 02-11-2006
sD31337

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

Всего записей: 30 | Зарегистр. 27-10-2006 | Отправлено: 20:40 02-11-2006 | Исправлено: sD31337, 20:46 02-11-2006
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sD31337
Что значит "склеить" ?

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Предлагаю добавить в шапку
 
· Cmd. Описание от разработчиков на русском

Всего записей: 38 | Зарегистр. 25-08-2005 | Отправлено: 20:49 02-11-2006
Nagual



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Имя копмьютера что ли? да известно, но лучше имхо привязываться к маку, так как он наиболее стабильная зацепка, нежели имя компа, порт 8080.

Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 20:57 02-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