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

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

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

Цитата:
вот такой ключик у меня затесался уже давно от флеша и все удалить его не мог - оказывается у него приоритет для чтения.

у тебя какая win?
 
Registry keys
Starting with Windows Vista, you can secure registry keys so that they cannot be changed by unauthorized users. The StdRegProv class has the GetSecurityDescriptor and SetSecurityDescriptor methods. These methods return and write Win32_SecurityDescriptor objects.
 
Windows Server 2003, Windows XP, Windows 2000, Windows NT 4.0, and Windows Me/98/95:  The GetSecurityDescriptor and SetSecurityDescriptor methods in the StdRegProv class are not available. You can call the CheckAccess method in StdRegProv to determine if a user has access to a registry key.
 
 
Добавлено:
bomzzz
webms
 
пауза 1 сек

Код:
ping -n 2 localhost>nul 2>&1


Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 15:53 10-01-2010 | Исправлено: mugil_cephalus, 15:59 10-01-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у меня вин хп, но пока я не могу не прочитать, не удалить, не дописать ключ не зависимо от того какой у него статус доступа
 
а я где то делал запускалку для батников. поищи примерно на 60-65 странице, полтора кб весит на ассемблере упражнялся
http://forum.ru-board.com/topic.cgi?forum=5&topic=29819&start=1200
точнее на 61

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 16:02 10-01-2010 | Исправлено: bomzzz, 16:04 10-01-2010
webms

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

Цитата:
только лучше планировщиком заданий воспользоваться

не могу, так как хочу чтоб сервер (винд хп) перезагружался в ~4 утра потом убивал пару процессов и открывал ПО
а в планировщике задач ужно пасс ставить, иначе не идет (сп3)  
 
ping -n 2 localhost>nul 2>&1  
у меня апачь стоит, нечего не буде???  
как не хочеться пингом пузы делать

Всего записей: 27 | Зарегистр. 19-11-2009 | Отправлено: 16:24 10-01-2010
mugil_cephalus

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

Цитата:
у меня вин хп, но пока я не могу не прочитать, не удалить, не дописать ключ не зависимо от того какой у него статус доступа  

странно...
 
 я пока нашел только это по subj - MSDN MSDN Library Win32 and COM Development Administration and Management Windows Management Instrumentation Using WMI Maintaining WMI Security Changing Access Security on Securable Objects
http://msdn.microsoft.com/en-us/library/aa384905(VS.85).aspx
Printers, services, registry keys, DCOM applications, and WMI namespaces are securable objects. The access to securable objects is protected by security descriptors, which specify the users who have access. Starting with Windows Vista, many securable objects have methods for getting or setting the security descriptor. With appropriate permissions, you can read or change security descriptors on securable objects. Using these methods, you can control which user accounts or groups have access to a printer, service, WMI namespace, or other object.  
 
Добавлено:
webms

Цитата:
ping -n 2 localhost>nul 2>&1  
у меня апачь стоит, нечего не буде???  
как не хочеться пингом пузы делать

в шапке - Задачи на bat-файлах 7 Делаем паузу в командном файле стандартными средствами Windows http://forum.ru-board.com/topic.cgi?forum=62&topic=11825&start=1300#6

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 16:33 10-01-2010
webms

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

Всего записей: 27 | Зарегистр. 19-11-2009 | Отправлено: 16:47 10-01-2010
Glen78

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди помоги правильно написать bat для перезагрузки модема четез telnet  
telnet 192.168.0.1 (с этим понятно)  
здесь запрос Логина  (как правильно вписать логин чтобы он автоматически принимался модемом?)  
здесь запрос Пароля  )как правильно вписать пароль чтобы он автоматически принимался модемом?)  
Команда перезагрузки Reboot (как правильно ее вписать?)  
И команда для закрытия окна файла.  
ОГРОМНОЕ СПАСИБО ЗА ПОМОЩЬ.
Очень Очень Нужно.

Всего записей: 3 | Зарегистр. 08-01-2010 | Отправлено: 17:29 10-01-2010
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Glen78
посм. пуск->выполнить->hh telnet.chm
еще - http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=1380#9

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 17:39 10-01-2010 | Исправлено: mugil_cephalus, 18:29 10-01-2010
Glen78

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
telnet 192.168.0.1  
echo admin  
echo admin  
 
Но врезультате выдается только приглашение к вводу логин и пароля. Т.е. логин и пароль не вводятся.  

Всего записей: 3 | Зарегистр. 08-01-2010 | Отправлено: 18:48 10-01-2010
mugil_cephalus

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть файл %SystemRoot%\system32\login.cmd
@echo off
rem
rem  Общий сценарий входа в систему, установленный по умолчанию,
rem  для Telnet Server'а
rem
rem  После установки, этот сценарий, по умолчанию исполняется каждый раз
rem  при вызове инициализации командной оболочки. Он, в свою очередь,
rem  попытается вызвать сценарий входа в систему конкретного пользователя.
rem  конкретного пользователя.
rem
 
echo *================================================================
echo Вас приветствует Telnet-сервер производства корпорации Майкрософт
echo *================================================================
 
cd /d %HOMEDRIVE%\%HOMEPATH%
 
 
http://www.nulled.ws/showthread.php?t=134899
 
 
Добавлено:
TelnetPackedClient 0.3              
 
 Обновлено 14 октября 2008 г. 00:18:33  
Рейтинг  706 ( -53 -7.5% )  
Лицензия Freeware  
Автор seniorandre  
 
 
Описание:
Пакетный telnet клиент. Позволяет создавать скрипты последовательностей команд и эхоответов. Позволяет запускать скрипты из командной строки. Незаменимый помошник системного администратора для удаленного управления устройствами по телнет, в том числе в режиме bat файлов.  
В комплекте скрипты удаленной переагрузки ADSL модема  
http://softsearch.ru/programs/297-757-telnetpackedclient-download.shtml
 
------------
Автоматизация TELNET скриптов, под Windows http://jack7277.habrahabr.ru/blog/78263/#habracut
 
Добавлено:
Glen78
походу на bat фиг сделаешь (см. - http://www.samag.ru/forum/index.php?action=printpage;topic=879.0  )  
весь инет перерыл - вопрососов таких полно - решения все с багами  
спроси на vbs - http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=1491#1

Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 19:05 10-01-2010 | Исправлено: mugil_cephalus, 19:43 10-01-2010
bomzzz



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

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:55 10-01-2010 | Исправлено: bomzzz, 21:59 10-01-2010
CompModdd

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста написать батник.
 
Суть какая, есть текстовый файл с расширение .reg в файле есть строка с путем на другой файл (путь ведет на профиль пользователя) к примеру эта строка будет выглядеть так  
???????\Application Data\LOG\
А вот ??????? нужно заменить на полный путь к папке профиля чтобы получилось прамерно так
C:\Documents and Settings\User\Application Data\LOG\
Путь к папке профиля юзера нужно получить из переменной %UserProfile% так как не увсех ОС стойт на диске С и не у всех папка профиля User.

Всего записей: 30 | Зарегистр. 17-09-2009 | Отправлено: 01:40 11-01-2010
miksanfree



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Glen78
На VB есть решение
Нужно скачать w3sockets
http://dimac.net/default3.asp?M=FreeDownloads/Menu.asp&P=FreeDownloads/FreeDownloadsstart.asp
справка по использованию здесь
http://www.dimac.net/products/freeproducts/w3sockets/reference/refstart.htm
 
после этого скрипт для перезагрузки модема будет выглядеть примерно так:
 
Option Explicit
 
Dim objSocket
 
Set objSocket = CreateObject("Socket.TCP")
objSocket.DoTelnetEmulation = True
objSocket.TelnetEmulation = "TTY"
objSocket.TimeOut = 60000
objSocket.Host = "192.168.1.1:23"
 
objSocket.Open()
objSocket.WaitFor "Login:"
objSocket.SendLine "admin"
objSocket.WaitFor "Password:"
objSocket.SendLine "admin"
objSocket.SendLine ""
objSocket.WaitFor ">"
objSocket.SendLine "reboot"
////WScript.Echo objSocket.buffer
objSocket.SendLine "logout"
objSocket.Close
 
Не помню для какого модема я это делал, но думаю подправишь для своего если что.

Всего записей: 745 | Зарегистр. 28-07-2006 | Отправлено: 04:56 11-01-2010
bomzzz



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

Цитата:
 
REG DELETE HKCU\Software\KMPlayer\KMP2.0\LastPosition /VA /f
REG ADD HKCU\Software\KMPlayer\KMP2.0 /V LastFileName /t REG_SZ /d "" /f
REG QUERY HKCU\Software\KMPlayer\KMP2.0\OptionArea /v InstallPath > KMPPath.TXT
FOR /F "EOL=C SKIP=4 delims=*" %%I IN (KMPPath.TXT) DO SET KMPPath=%%I
SET KMPPath=%KMPPath:~23%
SET KMPPath=%KMPPath:~0,-12%
SET KMPPath="%KMPPath%PlayList\Default.kpl"
DEL KMPPath.TXT /Q
ECHO [playlist]> %KMPPath%
ECHO NumberOfEntries=0>> %KMPPath%
ECHO Version=2>> %KMPPath%
ECHO CurrentIndex=-1>> %KMPPath%
 

вот только закончил себе делать батник для очистки кмплеера - путь к файлу батник получает из реестра, распечатывает параметром с путем во временный файл и выкалупывает путь из  5 строки, откидывая первые 23 символа и последние 12.
 
ПОМОГИТИ - получаю путь к OutLook-у
FOR /R "%USERPROFILE%\Local Settings\Application Data\Identities" %%I IN (.) DO SET OUTLPATH=%%~dpI%
рассчитывая, что в переменной останется путь, но вот фигу - батник на папке микрософт останавливается и дальше не хочет копать ни в какую.  
разобрался - вот какашка допускается до 7 вложений
они спецом замутили этот путь он вот тут закодирован
[HKEY_CURRENT_USER\Software\Microsoft\Outlook Express\5.0\Shared Settings\Setup
"MigToLWP"=hex:70,19,f1,f7,df,ab,dc,40,87,d8,93,68,fd,d3,88,0e
                           {F7F11970-ABDF-40DC-87D8-9368FDD3880E}
еще путем перестановки можно получить из ключа в реестре
 
ОБМАНУТЬ OUTLOOK оказалось до банальности просто
 
FOR /R "%USERPROFILE%\Local Settings\Application Data\Identities" %%I IN (.) DO SET OUTLPATH=%%~dpI%
DEL "%OUTLPATH%Outlook Express\*.*"  /f /s /q

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 09:54 11-01-2010 | Исправлено: bomzzz, 22:47 11-01-2010
RMR

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

Код:
for /f %%i in ('fsutil fsinfo drives ^|more') do (  
  echo %%i
)
 

Выводит только "Диски:" в Win7. В XP работало.
Почему так? Может есть простое решение? (не хочется рекурсивный разбор делать)

Всего записей: 32 | Зарегистр. 23-11-2006 | Отправлено: 22:59 11-01-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
fsutil.rar
а у табе аткие файлики есть???. могет быть что в семерке оно немного по другому називаица. подложь к батнику в папку.
 
вот спасибо теперь понятно как создать нулевой файл - это надо для очистки The Bat! и кеша во мазиле флоке и камелеоне

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 23:15 11-01-2010 | Исправлено: bomzzz, 23:21 11-01-2010
arjuna_new



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите создать простой батник для изменения в реестре нескольких значений и запуска после этого трех экзешников которые находятся в той же папке что и батник.
Еще все это находится на флешке, поэтому букву диска заранее не знаешь.
 
1 ключ
 
REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /f
 
2 ключ
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Shell"="Explorer.exe"
"Userinit"="C:\\WINDOWS\\system32\\userinit.exe"
 
3 ключ
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=dword:00000000
 
Дальше по очереди должны запуститься три экзешника в той же папке.

Всего записей: 303 | Зарегистр. 16-07-2005 | Отправлено: 23:33 11-01-2010
CompModdd

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

Всего записей: 30 | Зарегистр. 17-09-2009 | Отправлено: 00:33 12-01-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
все я понял. если бы у тебя чета принципиально не получалось то это почти тоже самое, а не готовый скрипт. к тому же задача поставлена нечетко.
ну так же - надо считать строку из файла ее отредактировать и приделать все что хочешь к ней.
FOR /F "EOL=C delims=*" %%I IN (MYFILE.REG) DO (
 
ВОТ ЭТА ЧЧАСТЬ БУДЕТ ДЛЯ КАЖДОЙ СТРОКИ ВЫПОЛНЯТЬСЯ ПО ОЧЕРЕДИ
)
это при условии что * точно нигде попадаться не будет. это EOL=C пропускать пустые строки
 
 
батник зафигачил чистит автоматом то, что приходилось раньше дочищать в ручную. дополнение к CCLeaner-у. существование программ он вроде всех проверяет, но пути инсталяции уже лень для всех делать и так 15 кб получилось - то есть если не в родные пути инсталили не будет работать. ну так же как в сисиклинире думаешь какие галочки ставить в нем тоже надо поковырться маленько - по крайней мере уже файлы и ключи выискивать не надо. может кто нибудь добьет еще чего нибудь что прочистить можно. ну и методы все рассмотрены - очистить папку, удалить все файлы включая подпапки, удалить ключ, удалить параметр, получить значение параметра - путь, проверить существование ключа. делалось с точки зрения очистки перед дефрагментацией диска, ну то есть файлы не удаляются, а обнуляются в основном и ключи реестра лишний раз не дергаются.
 
FCleaner.rar  2,59 КБ (2 661 байт)
 
надо его наверно на форум сисиклинира выложить пусть прогу доработают
 
уже исправил небольшую ошибку и добавил проверку на существование путей

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 00:38 12-01-2010 | Исправлено: bomzzz, 22:04 12-01-2010
CompModdd

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
2 часа сидел читал инструкцию к команде FOR так нечего и не понял из вашего примера.
Я не силен в командной строке. Не могли б вы написать готовый скрипт по примеру приведенного ниже
 
MD ЭтоНадоЗаменить\Application Data\
 
Заменить надо на путь который находится в переменной %userprofile%
или
 
MD %userprofile%\Application Data\
 
Где %userprofile% будет будет путь к профилю
Строк таких в текстовом файле много.
В конечном итоге должно получиться к примеру так
MD C:\Documents and Settings\User\Application Data\
 
Буду вам очень благодарен.

Всего записей: 30 | Зарегистр. 17-09-2009 | Отправлено: 02:05 13-01-2010
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
думаешь я меньше читал, и до сих пор читаю - я на память конечно этого не понмю всего - не так часто батники пишу, до сих пор понять полет мысли того кретина кто написал справку к винде не могу. надо брать какую нибудь хорошую статейку в инете с примерами.  
 
то что ты пишешь все равно не досаточно надо знать о структуре файла больше и о том что надо откинуть тоже.
пропускать пустые строки - есть у тебя там пустые строки или нет я не знаю и есть ли просто начинающиеся с пробела, пропустить с начала 1 строку - надо сверху проупстить несколько строк я не знаю, делитель * - пойдет делителем звездочка вместо пробела по умолчанию -  я не знаю, пробелы наверняка в значениях попадаются надо заменить на знак который точно попадаться не будет.
 
FOR /F "EOL= skip=1 delims=*" %%I IN (MYREG.REG) DO (
 
)
вот этак конструкция будет считывать по одной строчке из файла, присваивая ее переменной I и выполнять операторы между скобками.
 
если ЭТО НАДО ЗАМЕНИТЬ всегда одной и той же длины по количеству знаков
 
%I:~18%

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 02:52 13-01-2010 | Исправлено: bomzzz, 03:24 13-01-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