Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: farseer777
Дата сообщения: 08.01.2010 08:46
Как переименовать файл так, чтобы в нем были записаны время и дата? Например нужно переименовать файл "Backup.bcf" в "Backup-10-00-08-01-2010.bcf".
Автор: bomzzz
Дата сообщения: 08.01.2010 08:57

Цитата:

ECHO OFF
COLOR 9F
CLS
RENAME MYFILE.TXT MYFILE-%DATE%.TXT


MYFILE-08.01.2010.TXT так пойдет? или черточки надо???

гыгы сделал с черточками
RENAME MYFILE.TXT MYFILE-%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.TXT

интересно но данный пример не работает 12 раз в год, за доли секунд до 0 часов в междомесечье, поэтому для корректности лучше промежуточную переменную использовать. и на новый год кстати тоже получается так же может гожд сменится после того как месяц уже получен
Автор: farseer777
Дата сообщения: 08.01.2010 09:22
bomzzz
О, не знал о существовании переменных %date% и %time%, вы меня просветили.

Цитата:
гыгы сделал с черточками
RENAME MYFILE.TXT MYFILE-%DATE:~0,2%-%DATE:~3,2%-%DATE:~6,4%.TXT

О, это для меня тоже новость. Принцип я вроде ухватил: первая цифра - начальная позиция, вторая - кол-во символов, так?

Цитата:
интересно но данный пример не работает 12 раз в год

Я думаю, это не сильно скажется на работе моих бэкапов. Да, они делаются каждый день где-то после 23-00 (немного опасно), но надеюсь, все будет в порядке.
Спасибо, все работает!
Автор: bomzzz
Дата сообщения: 08.01.2010 09:42
промежуточную переменную воткни.
set mydata=%data%
а с mydata оперируй дальше так корректней
Автор: bredonosec
Дата сообщения: 08.01.2010 16:54
mugil_cephalus
а можно без паузы? он должен автоматичесмки отрабатывать, без моего участия, а тут получается, что после каждого файла ставит паузу, и сколько появляется файлов, столько пауз и столько раз нажать надо.
Автор: bomzzz
Дата сообщения: 08.01.2010 17:10
bredonosec
самую нижнюю строчку выкинь PAUSE и будет тебе счастие. эта строчка использовалась для отладки батника. после того как он точно заработал - стала не нужна
Автор: bredonosec
Дата сообщения: 08.01.2010 18:12
благодарствую
думал, на неё что-то завязано еще..
Автор: Glen78
Дата сообщения: 08.01.2010 21:36
Люди помоги правильно написать bat для перезагрузки модема четез telnet
telnet 192.168.0.1 (с этим понятно)
здесь запрос Логина (как правильно вписать логин чтобы он автоматически принимался модемом?)
здесь запрос Пароля )как правильно вписать пароль чтобы он автоматически принимался модемом?)
Команда перезагрузки Reboot (как правильно ее вписать?)
И команда для закрытия окна файла.
ОГРОМНОЕ СПАСИБО ЗА ПОМОЩЬ.
Автор: bomzzz
Дата сообщения: 09.01.2010 18:02
никто не подскажет. пишу батник дополнение к ccleaner-у вычищающий все какашки из системы. ковыряю по маленьку - выискиваю, что стереть можно. вот добрался до лога системных событий.

Цитата:

ECHO OFF
COLOR 9F
CLS
wmic nteventlog call cleareventlog
pause

результат такой - в чем же дело может быть????

Цитата:

Выполнение (Win32_NTEventlogFile)->cleareventlog()
ОШИБКА:
Код = 0x8004102f
Описание = Недопустимые параметры метода
Услуга = WMI
Для продолжения нажмите любую клавишу . . .

нашел готовое решение гуглой
wmic nteventlog where "logfilename = 'system'" call cleareventlog
wmic nteventlog where "logfilename = 'security'" call cleareventlog
секьюрити лучше не чистить, только записи в пустой журнал добавляет. вот для приложений еще ключа не нашел

вот нашел
wmic nteventlog where "logfilename = 'system'" call cleareventlog
wmic nteventlog where "logfilename = 'Application'" call cleareventlog
в принципе они имеют фиксированный размер (это задается настройками) и их можно вообще не чистить

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

а никто не знает как через wmic реестр редактировать, не могу найти нигде гуглой готовый пример, а хелп к wmic-у еще тупее чем к батникам. нужна возможность изменения привелегий
Автор: mugil_cephalus
Дата сообщения: 10.01.2010 13:02
bomzzz
1) а ты спрашивал про wmic тут - http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=1491#1
в wsh/vbs wmic чаще используют
2) http://www.robvanderwoude.com/wmistart.php
3) http://www.robvanderwoude.com/index.html
4) книга Джесси М. Торрес Сценарии администрирования Microsoft Windows. Справочник администратора
вроде тут uploaded http://www.megaupload.com/?d=RYJRI05Y
http://www.jesseweb.com/
Автор: bomzzz
Дата сообщения: 10.01.2010 13:15
это стереотип, я вот часто использую с батниками и даже с ассемблером. пасмотрим че тут. но если гугла на запрос wmic registry практически ничего не выдает врядли тут эта тема раскрыта. а вбс скрипт городить ради удаления одного ключа жирно будет.
я по моему уже всю строку подобрал вот только не нашел как задавать where класс
Автор: mugil_cephalus
Дата сообщения: 10.01.2010 13:20
bomzzz

Цитата:
это стереотип,

я не в плане использования, а в плане частоты упоминания: в wsh/vbs я встречал на порядок больше кодов с wmic, чеч на батниках
Автор: bomzzz
Дата сообщения: 10.01.2010 13:35
конечно стереотип - батникам сто лет, а вбс скрипты вылупились как раз в районе этого вмика. вот к батникам их и не пределывают. хотя они отлично дополняют батники причем в одну строку без объектов и прочей мути.

wmic /PRIVILEGES:enable registry where"'path=HKLM\SOFTWARE\Classes\FlashProp.FlashProp.1'" delete /?
Не определено значение выражения 'PWhere' для псевдонима. я и path пробовал и key

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


вот статейка которую мине гугла нашла для лога системного http://synjunkie.blogspot.com/2008/03/command-line-ninjitsu.html


wmic /PRIVILEGES:enable registry where keyreg="HKLM\SOFTWARE\Classes\FlashProp.FlashProp.1" list brief
Узел - BOMZ
ОШИБКА:
Код = 0x80041017
Описание = Недопустимый запрос
Услуга = WMI
Автор: mugil_cephalus
Дата сообщения: 10.01.2010 13:43
bomzzz

Цитата:
хотя они отлично дополняют батники

абсолютно согласен. очень удобно!

Добавлено:
посм. поиск wmic на - http://msdn.microsoft.com/en-us/default.aspx

Добавлено:
http://www.microsoft.com/downloads/details.aspx?FamilyID=720f0cae-64a7-457f-bb95-e4f33e0cbc55&displaylang=en

Добавлено:
http://msdn.microsoft.com/en-us/library/aa394572(VS.85).aspx (там же - WMI Registry Classes Classes that manipulate registry keys and values. You can use these classes to change, add, or delete registry keys and values. http://msdn.microsoft.com/en-us/library/aa394573(VS.85).aspx )
Автор: bomzzz
Дата сообщения: 10.01.2010 14:15
если гугл на запрос wmic registry дает три ссылки в которых ничего нет, значит использование wmic для реестра вообще нигде не рассматривается в инете. я понадеялся что кто то делал и подобрал. и батники и вбс скрипты имею свои инструменты для реестра. не умеют только привелегии менять ключей. видимо никому задача такая не попадалась да и мне особо тоже не горит - один ключ можно и в ручную удалить, просто хотелось это дело автоматизировать, а теперь уже просто интересно как это сделать с помощью вми
Автор: webms
Дата сообщения: 10.01.2010 14:38
помогите плз, как запустить батник без черного окошка и чтоб он запускал батник через 24 часа

например:
бат1(в фоне)- запускает бат2(черз 24 часа)

если не ошибаюсь в фоне запускает скрипт:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run"C:\bat1.bat ", 0, true

а как поставить паузу?? в bat1.bat
Автор: bomzzz
Дата сообщения: 10.01.2010 14:45
по времени - пусть время проверяет пока не подойдет, только паузу надо вставить на секунду скажем чтоб комп не завис, это через пинг делают кажется. только лучше планировщиком заданий воспользоваться
Автор: mugil_cephalus
Дата сообщения: 10.01.2010 14:53
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
Автор: bomzzz
Дата сообщения: 10.01.2010 15:02
у меня вин хп, но пока я не могу не прочитать, не удалить, не дописать ключ не зависимо от того какой у него статус доступа

а я где то делал запускалку для батников. поищи примерно на 60-65 странице, полтора кб весит на ассемблере упражнялся
http://forum.ru-board.com/topic.cgi?forum=5&topic=29819&start=1200
точнее на 61
Автор: webms
Дата сообщения: 10.01.2010 15:24

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

не могу, так как хочу чтоб сервер (винд хп) перезагружался в ~4 утра потом убивал пару процессов и открывал ПО
а в планировщике задач ужно пасс ставить, иначе не идет (сп3)

ping -n 2 localhost>nul 2>&1
у меня апачь стоит, нечего не буде???
как не хочеться пингом пузы делать
Автор: mugil_cephalus
Дата сообщения: 10.01.2010 15:33
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
Автор: webms
Дата сообщения: 10.01.2010 15:47
спасибо громное
Автор: Glen78
Дата сообщения: 10.01.2010 16:29
Люди помоги правильно написать bat для перезагрузки модема четез telnet
telnet 192.168.0.1 (с этим понятно)
здесь запрос Логина (как правильно вписать логин чтобы он автоматически принимался модемом?)
здесь запрос Пароля )как правильно вписать пароль чтобы он автоматически принимался модемом?)
Команда перезагрузки Reboot (как правильно ее вписать?)
И команда для закрытия окна файла.
ОГРОМНОЕ СПАСИБО ЗА ПОМОЩЬ.
Очень Очень Нужно.
Автор: mugil_cephalus
Дата сообщения: 10.01.2010 16:39
Glen78
посм. пуск->выполнить->hh telnet.chm
еще - http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=1380#9
Автор: Glen78
Дата сообщения: 10.01.2010 17:48
telnet 192.168.0.1
echo admin
echo admin

Но врезультате выдается только приглашение к вводу логин и пароля. Т.е. логин и пароль не вводятся.
Автор: mugil_cephalus
Дата сообщения: 10.01.2010 18:05
есть файл %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
Автор: bomzzz
Дата сообщения: 10.01.2010 20:55
подскажите пожалуйста - удалить все подразделы ключа и их параметры кроме самого ключа можно только через получения списка и потом удалять по нему????

и такой вопрос еще - нет способа записать нулевой бинарный файл заданного размера без помощи сторонних файлов (типа сторонних утилит либо пустышки)???
Автор: CompModdd
Дата сообщения: 11.01.2010 00:40
Помогите пожалуйста написать батник.

Суть какая, есть текстовый файл с расширение .reg в файле есть строка с путем на другой файл (путь ведет на профиль пользователя) к примеру эта строка будет выглядеть так
???????\Application Data\LOG\
А вот ??????? нужно заменить на полный путь к папке профиля чтобы получилось прамерно так
C:\Documents and Settings\User\Application Data\LOG\
Путь к папке профиля юзера нужно получить из переменной %UserProfile% так как не увсех ОС стойт на диске С и не у всех папка профиля User.
Автор: miksanfree
Дата сообщения: 11.01.2010 03:56
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

после этого скрипт для перезагрузки модема будет выглядеть примерно так:

[no]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[/no]

Не помню для какого модема я это делал, но думаю подправишь для своего если что.
Автор: bomzzz
Дата сообщения: 11.01.2010 08:54
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

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: SAS.Планета (часть 2)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.