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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи!
Как сделать, чтобы запуск батника не отображался на экране и вообще не было видно процесса даже в свернутом виде.
Т.е. сделать процесс полностью невидимым.

Всего записей: 127 | Зарегистр. 11-06-2004 | Отправлено: 07:28 20-10-2006
ViSiToR



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

Цитата:
Как сделать, чтобы запуск батника не отображался на экране и вообще не было видно процесса даже в свернутом виде.

Смотрим в шапку раз, юзаем поиск два
 

Цитата:
сделать процесс полностью невидимым.

Невидемым процесс, думаю не получится, он всегда будет “висеть” в диспетчере задач.

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

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 09:05 20-10-2006
Snegov1k



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

Код:
 
@Echo Off  
set Counter=0    
FOR /F %%i IN ('dir /b /a-d /on Log\*.Log') DO Call :Count %%i  
echo %Counter%    
echo %counter% > ResultCount.txt
GoTo :EOF  
   
:Count  
echo %1  %counter%  
Set /a Counter=%Counter%+1    
GoTo :EOF
 
 
 
считает и записывает,потом сверяется и разархивирует

Код:
 
set Counter=0                                                                                                    
FOR /F %%i IN ('dir /b /a-d /on c:\*.rar') DO Call :Count %%i                                                  
echo %Counter%                                                                                                    
GoTo :Next                                                                                                        
                                                                                                                 
:Count                                                                                                            
echo %1  %counter%                                                                                                
Set /a Counter=%Counter%+1                                                                                        
GoTo :EOF                                                                                                        
                                                                                                                 
:Next                                                                                                            
For /f "delims=" %%a in (resultcount.txt) do if /i %Counter%==%%a start C:\WINRAR\winrar.exe x -ep -y c:\*.rar c:\
 

а это проверяет и разархивирует.  
 
 
Проблемма в том что когда число добавляется в файл оно добавляется неким количеством пробелов. И когда идет проверка - то не сходится (((
Как решить?  

Всего записей: 48 | Зарегистр. 12-10-2006 | Отправлено: 13:09 20-10-2006
ViSiToR



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

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

Не совсем понятно, пробела в самом результате, пробелы после результата, до, и т.д...
 
Попробуй так:
 

Код:
For /f "delims= " %%a in (resultcount.txt) do if /i %Counter%==%%a start C:\WINRAR\winrar.exe x -ep -y c:\*.rar c:\

 
После delims= я добавил пробел, это будет брать в переменную только все символы, идущие до первого пробела (со всех строк файла).

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

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 16:14 20-10-2006
Snegov1k



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

Всего записей: 48 | Зарегистр. 12-10-2006 | Отправлено: 16:46 20-10-2006
mvg1952



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как в батнике определить день недели?  
Конкретнее, меня интересует Понедельник, так как в этот день надо перейти на три дня назад, а не на один, как  в любимой нами задаче "переименовать файл(папку) на один день раньше" ( XP:  формата даты: dd.mm.yyyy )

Всего записей: 38 | Зарегистр. 20-10-2006 | Отправлено: 18:25 20-10-2006
Elroir



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

Код:
 
@echo off
chcp 1251
reg import date_format_dddd.reg
set day=%date:~0,3%
reg import date_format_dd.reg
if "day"=="Пон" (
..
..делаем то, что нужно
..
)
 

Файл date_format_dddd.reg:

Код:
 
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Control Panel\International]
"sDate"=" "
"sShortDate"="dddd dd.MM.yy"
 

Файл date_format_dd.reg:

Код:
 
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Control Panel\International]
"sDate"="."
"sShortDate"="dd.MM.yy"
 

 

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:07 20-10-2006
monitoring

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте. Нужен такой батник — при запуске, в зависимоти от времени (утро/день/вечер/ночь), выбиралась определённая картинка и ставилась wallpaper'ом на рабочий стол. В принципе интересует, впервую очередь, команда смены обоев, остальное может и сам смогу...

Всего записей: 36 | Зарегистр. 14-10-2005 | Отправлено: 21:34 20-10-2006 | Исправлено: monitoring, 21:43 20-10-2006
DMx



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно сделать батник, который запускает прогу из под другой учетной записи, т.е. НЕ под той, что находишься в момент запуска этого батника.
Запускать нужно из под учетной записи Администратора (встроенная в систему).
 
Помогите, а то надоело уже каждый раз выбирать пункт всплывающего меню и вводить пасс.

Всего записей: 154 | Зарегистр. 23-09-2003 | Отправлено: 00:02 21-10-2006
RL



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

Всего записей: 20 | Зарегистр. 11-10-2006 | Отправлено: 00:27 21-10-2006
DMx



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RL
А что дальше? Как мне указать, что я запускаю из под Администратора?

Всего записей: 154 | Зарегистр. 23-09-2003 | Отправлено: 13:20 21-10-2006
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DMx
А почитать, что пишет runas /?
Делаешь так - запускаешь команду

Код:
runas /savecred /user:Administrator "твоя программа"

В первый раз, тебе надо будет ввести пароль администратора. После этого система запомнит этот пароль и в дальнейшем, при запуске этой команды не будет его запрашивать. Но учти - после этого кто угодно сможет запустить любую программу под администратором с помощью команды runas /savecred /user:Administrator "программа".

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:58 21-10-2006
Gizm0

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В этом я не силен,но уверен что тут несложно,вообщем буду признателен за помощь.
Суть такова,что для обновления сайта требуется вручную менять много строк кода (ссылки на картинки)
Первую строку батника я написал,вот она

Код:
echo <img src=http://gg.com/pics/1.jpg></img> >> D:\h1\html.txt

как мне дописать батник,чтобы при запуске,проверялся файл html.txt на наличие строки

Код:
echo <img src=http://gg.com/pics/1.jpg></img>

если таковая существует,то прописывалась бы следующая строка но уже с другой нумерацией картинки,например

Код:
echo <img src=http://gg.com/pics/2.jpg></img>

то есть грубо говоря,вся строка оставалась бы исходной,а менялась только нумерация картинки и возможно ли (мне кажется что да ) задать какой-то диапазон нумерации,то есть есть 100 картинок,вот чтобы по порядку все и пронумеровалось.
Буду признателен за любые советы или готовые решения.
 
Добавлено:
Поправлюсь,немного неправильно написал
 
 
как мне дописать батник,чтобы при запуске,проверялся файл html.txt на наличие строки  
 

Код:
<img src=http://gg.com/pics/1.jpg></img>
 
 
 
если таковая существует,то прописывалась бы следующая строка но уже с другой нумерацией картинки,например  
 

Код:
<img src=http://gg.com/pics/2.jpg></img>

Всего записей: 4 | Зарегистр. 15-02-2006 | Отправлено: 20:45 22-10-2006
mvg1952



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо! помогло. Пришлось, правда, вспомнить о Волков-командере, где есть встроенный HEX-редактор -- не хотела винда отруки написанный рег файл импортировать... пришлось, снача экспортировать ветку, а потом HEX-редактором подправить ее и всем настало счастье!!!

Всего записей: 38 | Зарегистр. 20-10-2006 | Отправлено: 14:36 23-10-2006
Elroir



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

Цитата:
не хотела винда отруки написанный рег файл импортировать

Вот это интересно - поподробней пожалуйста.

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:32 23-10-2006
FrodoHobbit

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
Давно бьюсь над задачей сделать такой бат - файл -

в зависимости от переданного в БАТ параметра (число, от 1 до 20), надо проивести действия
(скопировать файл, например, С1.xls, 1 - номер параметра, в какую то другую папку).

Проблема -  передать в БАТ файл параметр.

Кто мог бы помочь, был бы очень рад
;)))



Всего записей: 7 | Зарегистр. 23-10-2006 | Отправлено: 17:42 23-10-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FrodoHobbit
Work.Bat 11 22 33 44 55 66 77 88 99

Код:
@Echo Off
Echo Arg1=%1
Echo Arg2=%2
Echo Arg3=%3
Echo Arg4=%4
Echo Arg5=%5
Echo Arg6=%6
Echo Arg7=%7
Echo Arg8=%8
Echo Arg9=%9
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 18:01 23-10-2006
FrodoHobbit

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, значит, через аргументы файла, тогда я постараюсь объяснить цель получше -  
 
Вот я запустил файл с параметром work.bat 1
 
Arg1=%1
А как сделать -  
 
IF Arg1 = 1
rem тут происходят нужные мне действия
MD ...
CD ...
copy ...
pause
 
IF Arg1 = 2
rem Другие действия с другими папками
 
 
вот в чём проблема?

Всего записей: 7 | Зарегистр. 23-10-2006 | Отправлено: 19:03 23-10-2006
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FrodoHobbit
if "%1"=="1" (
...
...
)
if "%1"=="2" (
...
...
)
и так далее.

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ура! Заработало! Спасибо огромное! ))))))))))))))))))
Если что, я ещё обращусь, ОК?

Всего записей: 7 | Зарегистр. 23-10-2006 | Отправлено: 19:22 23-10-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