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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет.
Есть такая проблемка.
Надо запустить емуль батником и что бы он спрятался.
Использую cmdow
cmdow /RUN /HID emule.exe - непомогает.
есть вариант

@echo off
emule.exe
cmdow | find /I "eMule v0.46"
получаем строчку вида:
cmdow 0x050212 1  684 Max Ina Ena Vis emule    eMule v0.47a
задача содрать отсюда начало 0x050212
и вставляем в строчку
cmdow 0x050212 /HID

Может кто посоветует ка это осуществить ?
И ещё проблемка, если уже один емуль запущен то строчек может быть 2-е, как отсеять по пути запуска ?
 
Заранее спасибо.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 23:09 17-07-2006 | Исправлено: slech, 23:12 17-07-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Всё-таки есть проблема...
 
Вот такой кусок кода (вывод списка подкаталогов)

Код:
 
for /r %%d in (.) do echo %%d >> %File1%
 

Вроде нормально работал, но... Выяснилось, что если в названии каталога присутствует восклицательный знак, то... увы.. Он (восклицательный знак) - не выводится - т.е. выводится вся строчка с наименованием подкаталога, но без восклицательного знака.
 
Вопросов, собственно, два:
1) Что можно сделать
2) А какие есть еще "запрещенные символы"

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 01:33 18-07-2006
Ruslan FM

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

Цитата:
 
zh3ntos
 
А так пробовал?  
FOR /F "tokens=1" %%i in ('dir /b /a-d /o-d /tw %dirProg%\*.xls') do @echo %%i
 

так тоже пробовал  
видимо придется делать через временный файл.
(хочется обойтись без дополнительных файлов).
 
Добавлено:

Цитата:
 
 
for /r %%d in (.) do echo %%d >> %File1%  
 

 
а не проще dir %katalog%  /b >> %File1%

Всего записей: 69 | Зарегистр. 10-11-2005 | Отправлено: 08:44 18-07-2006
Kirillhome



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ruslan FM
Не проще
Указанный мной вариант выводит информацию о подкаталогах, а твой - о файлах, что несколько разные вещи
 
 
Разобрался, проблема оказалась в  

Код:
 
setlocal ENABLEDELAYEDEXPANSION
 

Заккоментарив данную строчку - снял проблему.
Но ведь наверняка в чём-то проиграл?

Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 10:31 18-07-2006 | Исправлено: Kirillhome, 10:35 18-07-2006
Ruslan FM

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть идеи, как найти в каталоге один файл (.xls) ,  отредактированный последним??
смог отсортировать и загнать в файл, но не могу прочитать только первую строку, или последнюю.

Всего записей: 69 | Зарегистр. 10-11-2005 | Отправлено: 11:20 18-07-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ruslan FM
dir *.xls /o:-d >list.txt
Читаешь файл, как только прочитал одну строку выходи из цикла

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:34 18-07-2006
Ruslan FM

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
 
а как читать одну строку из файла .
не нашел как это сделать стандартными средствами.
more , type   не могут.

Всего записей: 69 | Зарегистр. 10-11-2005 | Отправлено: 11:45 18-07-2006
KapralBel



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

Код:
@Echo Off
Set stroka=0
For /F %%a in (file.txt) Do Call :_P %%a
GoTo :EOF
 
:_P
If %Stroka%==1 GoTo :EOF
Set stroka=1
Echo %1
GoTo :EOF

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:13 18-07-2006
Ruslan FM

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

Цитата:
 For /F %%a in (file.txt) Do Call :_P %%a  

 
для имен с пробелами  
добавил ковычки и все заработало  
 For /F %%a in (file.txt) Do Call :_P "%%a"
 
СПАСИБО!!!!

Всего записей: 69 | Зарегистр. 10-11-2005 | Отправлено: 12:57 18-07-2006
evle



1 + int rand(100);
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ruslan FM
Что-то мне подсказывает, что вот так будет изящнее:  

Код:
 
for /F %%i in ('dir /o:-d /b *.xls') do (echo %%i & goto :eof )
 

Без временных файлов и немного короче.

----------
For every complex problem, there is a solution that is simple, neat, and wrong.

Всего записей: 2110 | Зарегистр. 03-02-2005 | Отправлено: 14:11 18-07-2006
cluster

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят, а можно в *.cmd сменить цвет у пары слов? Баловался с COLOR - он меняет цвет всего текста

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 14:25 18-07-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
cluster
Посмотри в шапке ansi.sys

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:30 18-07-2006
zubizub

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В начале темы, описан бат создающий плейлист. Я вот хотел его усовершенствовать чтоб генерировал красивый HTML. Но столкнулся с проблемой - как сделать чтобы bat'ник выводил в файл символы "<" и ">"?
А то он их считает за прог код и отказывается работать

Всего записей: 12 | Зарегистр. 14-07-2006 | Отправлено: 15:56 18-07-2006
Smitis



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

Цитата:
В начале темы, описан бат создающий плейлист. Я вот хотел его усовершенствовать чтоб генерировал красивый HTML. Но столкнулся с проблемой - как сделать чтобы bat'ник выводил в файл символы "<" и ">"?  
А то он их считает за прог код и отказывается работать  

Поставь перед этими символами символ ^
Ват так:

Код:
 
echo ^<TEXT^>
 


Всего записей: 3457 | Зарегистр. 09-02-2003 | Отправлено: 16:09 18-07-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
To All
А с моей проблемкой никому ничего не известно ?

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 18:10 18-07-2006
Simple Crypt



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

Цитата:
Всем привет.
Есть такая проблемка.
Надо запустить емуль батником и что бы он спрятался.
Использую cmdow
cmdow /RUN /HID emule.exe - непомогает.
есть вариант
 
@echo off
emule.exe
cmdow | find /I "eMule v0.46"
получаем строчку вида:
cmdow 0x050212 1  684 Max Ina Ena Vis emule    eMule v0.47a
задача содрать отсюда начало 0x050212
и вставляем в строчку
cmdow 0x050212 /HID
 
Может кто посоветует ка это осуществить ?
И ещё проблемка, если уже один емуль запущен то строчек может быть 2-е, как отсеять по пути запуска ?
 
Заранее спасибо.  

 
Запуск в скрытом виде:
wait.cmd - это скрытно запускаемый батник. В данном примере создаётся автоматически, но можете использовать какой-нибудь готовый.
 
rem Запуск батника в скрытом режиме
@echo off
echo dir /s c:\^>log.txt>wait.cmd
 
echo Set WshShell = CreateObject("WScript.Shell") >start.vbs
echo WshShell.Run "cmd.exe /c wait.cmd", 0, false>>start.vbs
 
cscript.exe //b //nologo start.vbs
 
del /f /q start.vbs
del /f /q wait.cmd
 
 
Добавлено:
All
Каким образом в бат-файле можно изменить формат выводимой даты на отпределённый?
Например c DDMMYY на MMDDYYYY ?

Всего записей: 73 | Зарегистр. 21-10-2003 | Отправлено: 09:23 19-07-2006
monsoon



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно ли в батнике проверить содержится ли к примеру символ "_" в названии файла (может быть в любой позиции) не перебирая символы по одному? Можно ли определить количество символов в названии также без перебора?

Всего записей: 1255 | Зарегистр. 30-01-2003 | Отправлено: 12:42 20-07-2006
KapralBel



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

Цитата:
Можно ли в батнике проверить содержится ли к примеру символ "_" в названии файла (может быть в любой позиции)

Нет (без перебора)
Можно выделить только файлы с подчеркиванием в названии *_*.*

Цитата:
Можно ли определить количество символов в названии также без перебора?
 

Нет (без перебора)
или используй другие вещи - VBS/JS например
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:10 20-07-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Simple Crypt
Спасибо конечно, но работать не хочет. всмысле что запускается всё равно окном.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 19:02 20-07-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
slech
cmdow /RUN /HID emule.exe - Теоретически должно работать
Ибо
cmdow /RUN /HID winrar.exe - работает
Цитата:
@echo off
emule.exe
cmdow | find /I "eMule v0.46"
получаем строчку вида:
cmdow 0x050212 1  684 Max Ina Ena Vis emule    eMule v0.47a

Сделай так
 
cmdow | find /I "eMule v0.46" >process.txt
For /F ....

И разбор файла по команде FOR
 
А вот с двумя запущенными из разных путей программами - не знаю  
Ни один из консольный менеджеров процессов ни показывает путь (по крайней мере, те что у меня есть)

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:16 21-07-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