Показать полную графическую версию : [архив] Нужна помощь в написании BAT | CMD | VBS | WSH файлов
Нужно через батник запустить приложение если оно не запущено. Как ето можно сделать?
нашел такую идею
SET SEARCH=notepad.exe
tasklist /fi "imagename eq %SEARCH%" /fo table /nh > %TEMP%\tmp.tmp
find /c "%SEARCH%" %TEMP%\tmp.tmp
echo %ERRORLEVEL%
if %ERRORLEVEL%==1 start notepad.exe
как-то слишком запутано? есть другие варианты? без создания темп файла
Petya V4sechkin
11-09-2008, 16:25
без создания темп файла
SET SEARCH=notepad.exe
tasklist /fi "imagename eq %SEARCH%" /fo table /nh | find /c /i "%SEARCH%"
if %ERRORLEVEL%==1 start notepad.exe
AGRESS0R
11-09-2008, 17:22
Всем прива !
Задачка вот такая:
1. проверить папку на удаленном компьютере на наличие файлов создать очет есть или нет (если возможно то как давно).
2. подцепиться к этой же машине, через РДП .
3. запустить определёную программу (софт) .
4. сделать скрин шот .
5. закрыть и сохранить отчет с картинкой в папке (фолдер).
6. (ну это вообше тяжко) послать папку на мыло или браузер.
вот та часть что мне пока удалось сделать !
@echo off
echo Check 1 - Tok Files
echo.
@dir \\shlabfls\autolims$\Common\Interfaces\Hl7\HL7Results\*.tok
echo.
echo Press Any key for Check 2 - Distrebution Engine
@pause > nul
mstsc sbxpap33a.rdp /console
@echo off
Start /w server.rdp
) Else (exit)
Благодарю за внимание !!!
Видать всеравно какой то запрос на запуск идет. С некоторыми программами при запуске выскакивает табличка что она запущена.
Как еще можно?
С некоторыми программами при запуске выскакивает табличка что она запущена. »
С какими?
если указать путь if %ERRORLEVEL%==1 start "N:\SOFT\Lan\ipscan.exe" то если процес не находит - запускается командная строка а не нужная программа/ если же указывать просто те приложения что уже лежат в system32 то срабатывает
Freezet
Как еще можно? »если всегда запускается то что ищется, то такой вариант:SET $PATH=%windir%\System32\notepad.exe
If Not Exist "%$PATH%" EXIT
For %%i In ("%$PATH%") Do Set $NAME=%%~nxi
TaskList /FI "ImageName EQ %$NAME%" /FO Table /NH | Find /I "%$NAME%"
If %ERRORLEVEL%==1 Start "" "%$PATH%"
если процес не находит - запускается командная строка а не нужная программа »Start принимает путь за заголовок окна - нужно проставить пустой заголовок (смотри пример)
AGRESS0R
1. Какая ОСь на удаленном компьютере... XP или сервер?
2. Нужно логически отделить подключение/отключение от других прикладных задач (запуск, лог, мыло, etc). Если на удаленной машине ВСЕГДА открыта консоль и она не блокируется, то можно вообще не использовать RDP, а запускать удаленно прямо из открытой консоли (через PSExec).
3. Каждая из перечисленных задач может запускаться как с локального, так и с удаленного компьютера - тут нужно определиться. ИМХО проще и надежней написать и отладить скрипт, который все перечисленное (кроме запуска консоли) выполняет локально, потом запустить (если нужно) удаленную консоль, удаленно запустить в ней выполнение скрипта, закрыть консоль. При необходимости часть операций можно выполнить локально... например, отправку почты (если удаленный компьютер не имеет выхода на почтовик).
З.Ы. Сам скрипт советую писать на AutoIT (http://forum.oszone.net/thread-98914.html), так как у него есть весь инстументарий для работы с окнами, скриншотами и почтой... на CMD ИМХО будет намного сложнее.
lAGRESSORl
12-09-2008, 15:08
1. Какая ОСь на удаленном компьютере... XP или сервер?
Ось SERVER 2003
2. Нужно логически отделить подключение/отключение от других прикладных задач (запуск, лог, мыло, etc). Если на удаленной машине ВСЕГДА открыта консоль и она не блокируется, то можно вообще не использовать RDP, а запускать удаленно прямо из открытой консоли (через PSExec).
Ок консоль можно сделать постоянной, она не блокируется !
3. Каждая из перечисленных задач может запускаться как с локального, так и с удаленного компьютера - тут нужно определиться. ИМХО проще и надежней написать и отладить скрипт, который все перечисленное (кроме запуска консоли) выполняет локально, потом запустить (если нужно) удаленную консоль, удаленно запустить в ней выполнение скрипта, закрыть консоль. При необходимости часть операций можно выполнить локально... например, отправку почты (если удаленный компьютер не имеет выхода на почтовик).
З.Ы. Сам скрипт советую писать на AutoIT, так как у него есть весь инстументарий для работы с окнами, скриншотами и почтой... на CMD ИМХО будет намного сложнее.
Ок понятно ! Дело в том что имеется некоторая программа котрую нуна проверять каждый час, заходя на удаленный комп и проверяя папку и программу на наличее ошибок ! Так вот если мне удастя вывести их в IMG то её мона будет закрепить на HTML, и будет все работать в автономном режиме. И этот скрипт может в дальнейшем во многом пригодиться !
AutoIT это установачная прога , хорошо может она и подайдёт !
amel27 насколько сложно сделат батник по выше указанным критериям !
Можно подсказать мне хотябы часть кода, я попробую дальше разобраться !
lAGRESSORl
13-09-2008, 01:04
Другой вопрос:
Подскажите пожалуйста :
Как сделать снимок экрана и чтоб сохронить его по дате и чеслу !
сохронить его по дате и чеслу ! » В таком варианте -ни как.
lAGRESSORl
13-09-2008, 19:21
В таком варианте -ни как. »
???? ЧТо вообше не как ?? :(
lAGRESSORl
13-09-2008, 22:16
Вот может кому пригодиться !
Авто логон, (если комп под паролем то можно записать автологон и при перезагрузки заходит автоматически) при нажатии LogOff просит пароль, а также при сочетании клавишь Win+L.
'***********************************************************************************
'Autologon
'***********************************************************************************
'On Error Resume Next
strComputer = InputBox("Please Insert Name Of Computer" & vbCRLF _
& "Dot - Means This Computer ","Computer Name",".")
strUserName = InputBox("Please Insert Name Of User","User Name","ZDES_IMYA_USERa")
strPassWord = InputBox("Please Insert Password Of User","Password","SDES_PASS")
'***********************************************************************************
Const HKEY_LOCAL_MACHINE = &H80000002
'***********************************************************************************
Select Case strUserName
Case "Hryack" ExitScript
Case "" ExitScript
End Select
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
strAutoAdminLogOn = "AutoAdminLogon"
strAutoAdminValue = "1"
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strAutoAdminLogOn,strAutoAdminValue
strDefaultDomain = "DefaultDomainName"
strDefaultDomainValue = "wshome"
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strDefaultDomain,strDefaultDomainValue
strDefaultUser = "DefaultUserName"
strDefaultUserValue = strUserName
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strDefaultUser,strDefaultUserValue
strDefaultPassword = "DefaultPassword"
strDefaultPasswordValue = strPassWord
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strDefaultPassword,strDefaultPasswordValue
Wscript.Echo "Autologon to User [" & strUserName & "] Done"
Sub ExitScript()
Wscript.Echo "Please Enter Valid User Name"
Wscript.Quit
End Sub
Сохранить в VBScript Script File
Вот отмена скрипта !
'***********************************************************************************
'Autologon
'***********************************************************************************
'On Error Resume Next
strComputer = InputBox("Please Insert Name Of Computer" & vbCRLF _
& "Dot - Means This Computer ","Computer Name",".")
strUserName = InputBox("Please Insert Name Of User","User Name","SDES IMYA")
strPassWord = InputBox("Please Insert Password Of User","Password","SDES PASS")
'***********************************************************************************
Const HKEY_LOCAL_MACHINE = &H80000002
'***********************************************************************************
Select Case strUserName
Case "Hryack" ExitScript
Case "" ExitScript
End Select
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
strAutoAdminLogOn = "AutoAdminLogon"
strAutoAdminValue = "0"
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strAutoAdminLogOn,strAutoAdminValue
strDefaultDomain = "DefaultDomainName"
strDefaultDomainValue = "wshome"
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strDefaultDomain,strDefaultDomainValue
strDefaultUser = "DefaultUserName"
strDefaultUserValue = strUserName
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strDefaultUser,strDefaultUserValue
strDefaultPassword = "DefaultPassword"
strDefaultPasswordValue = strPassWord
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strDefaultPassword,strDefaultPasswordValue
Wscript.Echo "Autologon to User [" & strUserName & "] Done"
Sub ExitScript()
Wscript.Echo "Please Enter Valid User Name"
Wscript.Quit
End Sub
lAGRESSORl, Как сделать снимок экрана, чтобы сохранить его по дате и числу ! »
например, при помощи бесплатной утилиты CmdCapture (http://ducklink.com/free-command-line-screen-capture.php):
For /F "Tokens=1 Delims=." %%i In ('WMIC OS Get LocalDateTime') Do Set FileName=%%i.JPG
CmdCapture.exe /f "%FileName%"
Вот может кому пригодиться »эта ветка по CMD-скриптам, а не VBS!
lAGRESSORl
14-09-2008, 17:57
amel27 THX
Я в написании батников не разбираюсь вовсе... Может кто подскажет где взять книгу, или chm файл для новичков, очень хочется научиться!!
Medic84, шапке темы есть нужная информация, а дальше все зависит только от вас...
Что то я ничего не понимаю.... Хочу скопировать папку(я начинаю с малого) Ввожу команду
@echo off
xcopy E:\Games\Callof~1\players E:\Backup
pause
И выводит сообщение не найден файл players
Что я делаю не так???
Petya V4sechkin
15-09-2008, 18:15
Medic84, для начала опцию /E добавьте.
А вообще: xcopy /?
Возможно, короткое имя Callof~1 не существует.
Возможно, короткое имя Callof~1 не существует. »
НУ тогда как сделать??? Если вводить полное название, то выдает ошибку еще страннее которую мне не понять....
Все, я понял.... И правда короткого названия не было.... Сократил Имя папки... ОНО ДОЛЖНО БЫТЬ БЕЗ ПРОБЕЛОВ И СПЕЦ. ЗНАКОВ!!!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC