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

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

Модерирует : gyra, Maz

Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 5
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Курс лекций для начинающих. Полезно и просто описано
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
· Уильям Станек - Командная строка Microsoft Windows (вплоть до w2k3)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек)
· Переход из 32-битной версии cmd.exe в 64-битную

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:38 10-03-2009 | Исправлено: TechnicsKuzya, 13:54 27-12-2009
NightV



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Привет уважаемые, тут понадобился батник управления теликом с медиапортала а я в этом не силен, не бейте
 
его нуна включать и выключать, даю команду на включение  
 
mode com1 baud=9600 parity=n data=8 stop=1 rts=off dtr=off  
echo ka 00 01>>com1
включается и получаю ответ (если в терминале) типа "ага... я включился"
 
A 01 OK01x
 
на выключение
 
mode com1 baud=9600 parity=n data=8 stop=1 rts=off dtr=off  
echo ka 00 00>>com1
ответ A 01 OK00x
 
можно послать команду-вопрос о его статусе
ka 00 ff
команда включись   ka 00 01
команда выключись ka 00 00
 ответы
включен   A 01 OK01x
выключен A 01 OK00x
 
тоесть сейчас у меня два батника на ON и OFF что не подходит
а теперь вопрос
как их совместить в один? я так понимаю нужно сначала его спросить и по полученому ответу запустить нужную команду, запустил батник, включился... еще раз запустил выключился

Всего записей: 4 | Зарегистр. 13-02-2010 | Отправлено: 19:50 13-02-2010
bybars

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

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

В cmd в команде SET появился новый параметр /P (уже довольно давно) (см. help set
 
SET /P variable=[promptString]
Ключ /P позволяет установить значение переменной для входной строки, введенной
пользователем.  Показывает указанное приглашение promptString перед чтением
введенной строки.  Приглашение promptString может быть пустым.
 
Дальше проверяем значение переменной среды с требуемой обработкой допустимых вариантов  ввода

Всего записей: 85 | Зарегистр. 12-09-2003 | Отправлено: 21:17 13-02-2010
oreguru

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

Код:
 
set /p file = "Путь к файлу: "
set %file%
attrib +h +s %file%  
pause
 

По замыслу батник должен был изменить атрибуты у файла, который в переменной задан. Проверяю (set %file%) - задается верно. Только скрытыми-ситемными становятся файлы в родительском каталоге
Где туплю?

Всего записей: 13 | Зарегистр. 20-11-2009 | Отправлено: 23:17 13-02-2010
bybars

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

Цитата:
set /p file = "Путь к файлу: "

надо
set /p file="Путь к файлу: "  
без пробелов
 
Кстати, а зачем ту строка ?

Цитата:
set %file%  

Она же будет выполнена как
set введенное_имя_файла
Может быть имелось ввиду
echo %file%
?

Всего записей: 85 | Зарегистр. 12-09-2003 | Отправлено: 02:17 14-02-2010 | Исправлено: bybars, 02:33 14-02-2010
bomzzz



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

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 02:59 14-02-2010
bybars

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

Цитата:
Привет уважаемые, тут понадобился батник управления теликом с медиапортала а я в этом не силен, не бейте  
 
его нуна включать и выключать, даю команду на включение  
 
mode com1 baud=9600 parity=n data=8 stop=1 rts=off dtr=off  
echo ka 00 01>>com1  
включается и получаю ответ (если в терминале) типа "ага... я включился"  
 
A 01 OK01x  

Я не совсем понял, Вы даете команду из батника, а ответ получаете в окне терминальной программы?
И еще. Вы можете перенаправить ответ в файл (из батника)?
Если можете, то команда for Вам в помощь (см. help for)
 
  Поясняющий пример:
 
  FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
 
    эта команда обрабатывает файл myfile.txt, пропускает все строки, которые
    начинаются с символа точки с запятой, и передает вторую и третью подстроки
    из каждой строки в тело цикла, причем подстроки разделяются запятыми и/или
    пробелами. В теле цикла переменная %i используется для второй подстроки,
    %j - для третьей, а %k получает все оставшиеся подстроки после третьей.
 

Код:
FOR /F "eol=; tokens=3* delims=, "  %%i in (myfile.txt) do (
@echo %%i      (Эта строка не нужна, просто для контроля, что мы взяли нужный токен)
if "%%i" == "OK01x" (
echo Включено, надо выключить (или я что-то перепутал
) else (
echo Выключено, надо включить
)
)
 

 

Всего записей: 85 | Зарегистр. 12-09-2003 | Отправлено: 03:46 14-02-2010
oreguru

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bybars
Спасибо за помощь.
 
set %file% - это я переменную проверял, в оригинале "set file" было, недоглядел...
 

Всего записей: 13 | Зарегистр. 20-11-2009 | Отправлено: 04:07 14-02-2010 | Исправлено: oreguru, 04:08 14-02-2010
NightV



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bybars благодарю за ответ
как раз и стоит загвозка КАК загнать ответ в переменую, тилик отвечает в течении доли секунд тоесть перехватывать нуна сразу после "команды-вопроса"
 
 
может что-то типа
echo ka 00 ff>>com1  
сом1>> echo "и тут пхаем в переменную"
 
P.S. ответ я вижу только если "общаюсь" с ним в терминале, это и понятно.
 
---------------------------------------------------------------------------------
сом1>> echo  
не работает (проверил), он считает что это файл
тоесть нужна команда чтоб "слушала" СОМ на 0.5-1 секунд и присваивала "услышаное" переменной
 
что-то мне начинает казатся что с батника это проделать невозможно

Всего записей: 4 | Зарегистр. 13-02-2010 | Отправлено: 05:39 14-02-2010 | Исправлено: NightV, 06:30 14-02-2010
bybars

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightV
А почему стоит задача, что именно батником это нужно сделать?
А если exe?
Я, в свое время, писал терминальную программу. Может ее приспособить?
Только нужно найти исходники

Всего записей: 85 | Зарегистр. 12-09-2003 | Отправлено: 11:09 14-02-2010
bybars

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2NightV
Написал программку (не универсальную), которая посылает на указанный порт команду и записывает ответ в файл.  
Еще нужна такая?
Загрузил на iFolder.ru SerialEcho 1.0
http://ifolder.ru/16411916
Кстати, в программе есть Ваш ник.
Первый раз воспользовался файлообменником для раздачи, и,извините, не удержался от соблазна поствить на просмотр рекламы. Пусть это будет Ваша плата за мои труды

Всего записей: 85 | Зарегистр. 12-09-2003 | Отправлено: 18:28 14-02-2010 | Исправлено: bybars, 18:31 14-02-2010
NightV



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
bybars
ну Вы прям кудесник
попробую и отпишусь с описанием (инструкцией) как я свою траблу решил, для таких же мозгокрутов как я.
кстате а на чем писали (язык)?
-----------------------------------------------------------------------------------------
короче проверил
1
получается что твоему ехе нельзя давать параметры с пробелом, тоесть:
serialecho.exe com1 tv.txt ka 00 ff
(выдает хелп какбутто вообще без параметров запустил)
 
только в ковычках, типа:
serialecho.exe com1 tv.txt "ka 00 ff"
 
или слитно (НО мне низя так, только с пробелами)  
в ковычках телик команду хавает (включается-выключается)
 
с этим розабралить, нуна команду в ковычках
 
2
файл с ответом создается НО пустой, всегда (когда проглатил и выполнил параметры с командой)
 
 
если с комуникацией проблемы нет может еще сделать чтоб еще в качестве параметра давать и время задержки в течениие которой она слушает порт в милисекундах, так-как как мне кажется телик отвечает примерно в течении трети или четверти секунды. в милисекундах, например:
serialecho.exe com1 tv.txt 1000 "ka 00 ff"
 
кстате в инете я много встречал что управляет апаратурой через СОМ, изгаляются все как могут, а тут будет легкое и изящьное решение (если конечно заработает )

Всего записей: 4 | Зарегистр. 13-02-2010 | Отправлено: 00:03 15-02-2010 | Исправлено: NightV, 20:19 16-02-2010
bybars

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сегодня вечером попробую реализовать замечания. Ждите.
Добавлено 2010-02-15
Программа написана на Си, компилировалась специально в MS Studio 6.0, чтобы упростить дистрибуцию
 
SerialEcho 1.0a http://ifolder.ru/16433242
 
Внесены изменения по замечаниям, указанным выше.
Жду реакции тестировщиков.

Всего записей: 85 | Зарегистр. 12-09-2003 | Отправлено: 10:00 15-02-2010 | Исправлено: bybars, 00:11 16-02-2010
NightV



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

Код:
 
C:\Users\VL\Desktop>serialecho.exe com1 tv.txt 500 at
WaitCommEvent failed: (87) ╧рЁрьхЄЁ чрфрэ эхтхЁэю.
 
GetOverlappedResult failed: (995) ╬яхЁрЎш  ттюфр/т√тюфр с√ыр яЁхЁтрэр шч-чр чртх
Ё°хэш  яюЄюър ъюьрэф шыш яю чряЁюёє яЁшыюцхэш .
 

перепробывал разные варианты, даже подставлял  

Код:
mode com1 baud=9600 parity=n data=8 stop=1 rts=off dtr=off  
 
результат один.
абракадабру расшифровать не смог
 
посмотри этот сорсик, может пригодится в твоем труде
 
к слову, у меня на этой машине "Win7 x86", COM натуральный (не USB) на матери, Асус, чип интелевый, Core2

Всего записей: 4 | Зарегистр. 13-02-2010 | Отправлено: 01:10 16-02-2010 | Исправлено: NightV, 03:28 16-02-2010
bybars

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

Всего записей: 85 | Зарегистр. 12-09-2003 | Отправлено: 09:36 16-02-2010
AntonVA1



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем! помогите написать батник такой:
есть папка с файлами:
lesson1.avi
lesson2.avi
lesson3.avi
lesson4.avi
lesson5.avi
 
Нужно каждый из них закинуть в rar-sfx с таким комментарием:
 

Цитата:
Setup=lesson5.avi
TempMode
Silent=1
Overwrite=2
 

 
вместо csslesson5.avi, естественно, тот, который в архиве. Это-то у меня и не выходит.
 
дальнейший вариант, но не обязательный, сделать такую структуру папок:
\lesson1\
\lesson2\
\lesson3\
\lesson4\
\lesson5\
 
Буду премного благодарен за помощь.
 
Добавлено:
YESS! Получилось!
Первую чзадания сделал так:

Цитата:
set OUTPUTFILE=comm.txt
 
for %%f in (*.avi) do (
echo Setup="%%~f"     >%OUTPUTFILE%
echo TempMode     >>%OUTPUTFILE%
echo Silent=1     >>%OUTPUTFILE%
echo Overwrite=2     >>%OUTPUTFILE%
 
C:\Sys\ARC\WinRAR\winrar.exe a %%~nf "%%~f" -sfx -z%OUTPUTFILE%
)

 
Благодаря инфе в топе! Спасибо!
А вторая часть... я ее вручную сделаю.

Всего записей: 472 | Зарегистр. 17-09-2003 | Отправлено: 15:55 16-02-2010
bybars

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

Цитата:
А вторая часть... я ее вручную сделаю.

Если я правильно понял, то Вам подойдет ключ -ap архиватора winrar

Всего записей: 85 | Зарегистр. 12-09-2003 | Отправлено: 19:47 16-02-2010
Cyberkot

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, знатоки!
Подскажите пож-ста батник для скачивания обновленного курейта с родного фтп веба.
Алгоритм , как я это вижу, такой:
1. Коннектимся к фтп (средствами винды , либо wget)
2. Считываем содержание
3. Фильтруем по критерию : расширение , дата и время создания файла.
4. И самый свежий релиз утягиваем себе.
Все это планируется в связке с планировщиком Win 7.

Всего записей: 6 | Зарегистр. 22-08-2009 | Отправлено: 20:53 16-02-2010
dimbat



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cyberkot
wget.exe ftp://ftp.drweb.com/pub/drweb/cureit/cureit.exe
Всегда тянется последняя версия.
Дальше ключами вгета усовершенствуешь - куда залить, во что переименовать и тд...

----------
In Search We Trust

Всего записей: 1034 | Зарегистр. 23-08-2003 | Отправлено: 01:11 17-02-2010 | Исправлено: dimbat, 01:12 17-02-2010
december2010

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно батником записать сурс текстовика в реестр, не зная одного из значений пути ветки, но известен следующий путь. К примеру HKLM\software\Data\неизвестно\vars Как быть в таком случае?
Запись с параметром String должна быть.
-----------
Часть вопроса с реестром разрешена таким образом:
 reg query HKLM\software\Data\ /s
что возвращает нам недостающую ветку сразу в первой строке ответа - HKLM\software\Data\{cebd44c2-bd39-4544-16d3-aab7b87d6c01}
 
и в ней уже подветка "vars" - HKLM\software\Data\{cebd44c2-bd39-4544-16d3-aab7b87d6c01}\vars
 
Остается неразрешенной задача работы батника, а именно:
Батник берет первую строку из фаила в который был помещен рекурсивный запрос reg query HKLM\software\Data\ /s > ответ.тхт, подставляет к этой строке \vars и создает запрос для добавления записи с сурсом фаила 123.txt
reg add HKLM\software\Data\{cebd44c2-bd39-4544-16d3-aab7b87d6c01}\vars /v string /t REG_SZ /d "сурс текствого фаила 123.txt" /f

Всего записей: 11 | Зарегистр. 13-02-2010 | Отправлено: 00:08 18-02-2010 | Исправлено: december2010, 01:48 18-02-2010
bybars

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

Цитата:
Код:FOR /F "eol=; tokens=3* delims=, "  %%i in (myfile.txt) do (  
@echo %%i      (Эта строка не нужна, просто для контроля, что мы взяли нужный токен)  
if "%%i" == "OK01x" (  
echo Включено, надо выключить (или я что-то перепутал  
) else (  
echo Выключено, надо включить  
)  
)  

 
подходит для  

Цитата:
Батник берет первую строку из фаила в который был помещен рекурсивный  

Только сразу после выполнения одного шага цикла выходишь из него оператором goto метка. Параметрами "eol=; tokens=3* delims=, "  варьируешь, чтобы получить нужную часть этой строки.
См. help for

Всего записей: 85 | Зарегистр. 12-09-2003 | Отправлено: 01:25 18-02-2010
   

Страницы: 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 » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru