:easy
cls
@echo off
@chcp 866
@title http://forum.drweb.com - cureit script beginning !
@color 06
@echo off
if not exist C:\forum_drweb md C:\forum_drweb
echo %allusersprofile%>C:\forum_drweb\critical.txt
if exist "%HOMEDRIVE%\Documents and Settings" echo %HOMEDRIVE%\Documents and Settings>>C:\forum_drweb\critical.txt
if exist %HOMEDRIVE%\users echo %HOMEDRIVE%\users>>C:\forum_drweb\critical.txt
:Scan
if exist "%programfiles%\DrWeb\dwscanner.exe" goto DRW
if exist "%programfiles(86)%\DrWeb\dwscanner.exe" goto DRWX
if not exist .\scanner.exe goto ren
:CUR
echo Start DrWeb CureIt stage one
scanner.exe /cureit_disable_uac /AA /AR- /AC- /BI- /ok /RP:C:\forum_drweb\userscan.log /FL-:C:\forum_drweb\critical.txt /quit
echo Start DrWeb CureIt stage two
scanner.exe /cureit_disable_uac /LITE /BI- /ok /TR /TB /AA /RP:C:\forum_drweb\litescan.log /quit
goto LOG
:DRWX
echo Start DrWeb Scanner stage one
"%programfiles(86)%\DrWeb\dwscanner.exe" /AR- /AC- /BI- /ok /AA /RP:C:\forum_drweb\dwuserscan.log /FL-:C:\forum_drweb\critical.txt /quit
echo Start DrWeb Scanner stage two
"%programfiles(86)%\DrWeb\dwscanner.exe" /LITE /BI- /ok /TR /TB /AA /RP:C:\forum_drweb\dwlitescan.log /quit
goto LOG
:DRW
echo Start DrWeb Scanner stage one
"%programfiles%\DrWeb\dwscanner.exe" /AR- /AC- /BI- /ok /AA /RP:C:\forum_drweb\dwuserscan.log /FL-:C:\forum_drweb\critical.txt /quit
echo Start DrWeb Scanner stage two
"%programfiles%\DrWeb\dwscanner.exe" /LITE /BI- /ok /TR /TB /AA /RP:C:\forum_drweb\dwlitescan.log /quit
goto LOG
:LOG
copy .\HiJackThis.exe C:\forum_drweb\ /y
C:\forum_drweb\HiJackThis.exe /silentautolog
del C:\forum_drweb\HiJackThis.exe /f /q
ver>C:\forum_drweb\x-info.log
set >>C:\forum_drweb\x-info.log
dir %windir% /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir %windir%\system32 /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir %windir%\system32\drivers /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir %temp% /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir %AppData% /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir .\ /a /-c >> C:\forum_drweb\x-info.log
ipconfig /all >C:\forum_drweb\ipconfig.log
explorer C:\forum_drweb\
exit
:ren
@color 06
echo RENAME PLEASE CUREIT in to SCANNER.EXE and press ANY KEY !
pause && goto easy
Sorry, you don't have permission for that!в итоге получилось вот forum_drweb.zip.)
Отзывы... предложения?Пожалуйста оставляйте отзывы и предложения.
Т.е. нельзя включать качалки, вроде нашего логосборщика WGET?(По специфике форума использование сторонних утилит строго ограничено..)
а где он должен быть? В сборщике такого не наблюдаю.++ у Вас в инструкции файлы для скачивания выделены жырным, а толку 0. Лучше вместо этого гиперссылки вставить (мне, например, очень неудобно читать такое).++ инструкция хотя бы в текущем виде к батнику сделать не плоскую, а вертикальную (по пунктам № 1, № 2. - четко структурированную):critical.txt это файл список путей для сканера
он в принципе всегда Exist (там хардлинк).if exist "%HOMEDRIVE%\Documents and Settings"
Здесь будет ошибка.dir %AppData%
Вот эти символы @ - они лишние (один раз только нужно писать).
Это можно опустить под строку @echo off:easy
cls
всегда будут FALSE.if not exist .\scanner.exe
:: Эту строку и POPD можно не писать при условии, что Вы написали в начале батника CD /D "%~dp0"
:: и более никаких переходов cd / chdir не производили
pushd "%~dp0"
For /F "delims=" %%? in ('dir /B /A-D *.exe') do if %%~z? GTR 50000000 set "CureIT=%%?"
:: если найден файл, переименовуем его в scanner.exe
if Defined CureIT (
ren "%CureIT%" "scanner.exe"
goto CUR
) else (
echo RENAME PLEASE CUREIT in to SCANNER.EXE and press ANY KEY !
pause
goto easy
)
А как же ХР ? Там это аналог папки Users. На win 7 её может и не быть - юзер может удалить. Получим непонятную ошибку.if exist "%HOMEDRIVE%\Documents and Settings"
он в принципе всегда Exist (там хардлинк).
+dir %AppData%
Здесь будет ошибка.
Он удаляется после сканирования /FL-:C:\forum_drweb\critical.txt (это ключ сканера-cureit)critical.txt это файл список путей для сканера
а где он должен быть? В сборщике такого не наблюдаю.
echo %allusersprofile%>C:\forum_drweb\critical.txt
if exist "%HOMEDRIVE%\Documents and Settings" echo %HOMEDRIVE%\Documents and Settings>>C:\forum_drweb\critical.txt
if exist %HOMEDRIVE%\users
echo %HOMEDRIVE%\users>>C:\forum_drweb\critical.txt
Проводником копировать ? Так дольше.. ftp ?Тем более, что для скачивания с ftp внешние утилиты не нужны.
Да почему ? эта часть работает.. попробуйте с другим именем.if not exist .\scanner.exe
всегда будут FALSE.
Вы знаете как можно в батник добавить копирование из ftp Проводником?Гимаев Наиль сказал(а): ↑
Тем более, что для скачивания с ftp внешние утилиты не нужны.
Проводником копировать ? Так дольше..
(echo binary&echo get /pub/drweb/cureit/setup.exe)| ftp -A ftp.drweb.com
Этот вопрос навёл меня на мысль, что можно скачивать браузером по умолчанию:Проводником копировать ?
start "" "ftp://ftp.drweb.com/pub/drweb/cureit/cureit.exe"
Ну так временно менять папку для загрузок?Но тогда задача по копированию в нужную папку и переименованию файла ложится на плечи пользователя.
WScript.Echo(GetFileFromURL("ftp://ftp.drweb.com/pub/drweb/cureit/cureit.exe","C:\forum_drweb\cureit.exe"))
Function GetFileFromURL(strURL, strPath)
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
With CreateObject("MSXML2.XMLHTTP")
.open "GET", strURL, False
.send
arrContent = .responseBody
End With
With CreateObject("ADODB.Stream")
.Type = adTypeBinary
.Open
.Write arrContent
.SaveToFile strPath, adSaveCreateOverWrite
End With
With CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strPath) Then
If objFSO.GetFile(strPath).Size <> 0 Then GetFileFromURL = True
End If
end with
End Function
Этот вопрос навёл меня на мысль, что можно скачивать браузером по умолчанию:
start "" "ftp://ftp.drweb.com/pub/drweb/cureit/cureit.exe"
explorer ftp://ftp.drweb.com/pub/drweb/cureit/cureit.exe
:: Проверка
::Пытаемся записать пустой файл в корень системного раздела
cd.>c:\test.log
if exist c:\test.log Echo OK - привилегии получены.
exit
@echo off
if "%1"=="" (
Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"Admin","","runas",1 >"%~dp0Elevating.vbs"
cscript.exe //nologo "%~dp0Elevating.vbs" "%~dpnx0"& Goto :eof
)
>nul del "%~dp0Elevating.vbs"
chdir /d "%~dp0"
:: <---код основной программы
chcp 866 >nul
cd /d "%~dp0"
:easy
cls
title http://forum.drweb.com - cureit script beginning !
color 06
::create log dir
if not exist C:\forum_drweb md C:\forum_drweb
::collect paths to scan
echo %allusersprofile%>C:\forum_drweb\critical.txt
echo %userprofile%>>C:\forum_drweb\critical.txt
echo %programfiles%>>C:\forum_drweb\critical.txt
if exist "%programfiles(x86)%" echo %programfiles(x86)%>>C:\forum_drweb\critical.txt
:Scan
::search scanner 7,8-9,CureIt
if exist "%programfiles%\DrWeb\dwscanner.exe" goto DRW
if exist "%programfiles(86)%\DrWeb\dwscanner.exe" goto DRWX
if not exist .\scanner.exe goto ren
:CUR
::CureIt
echo Start DrWeb CureIt stage one
scanner.exe /cureit_disable_uac /AA /AR- /AC- /BI- /ok /RP:C:\forum_drweb\userscan_%random%.log /FL-:C:\forum_drweb\critical.txt /quit
echo Start DrWeb CureIt stage two
scanner.exe /cureit_disable_uac /LITE /BI- /ok /TR /TB /AA /RP:C:\forum_drweb\litescan_%random%.log /quit
goto LOG
:DRWX
::DrWeb7
echo Start DrWeb Scanner stage one
"%programfiles(86)%\DrWeb\dwscanner.exe" /AR- /AC- /BI- /ok /AA /RP:C:\forum_drweb\dwuserscan_%random%.log /FL-:C:\forum_drweb\critical.txt /quit
echo Start DrWeb Scanner stage two
"%programfiles(86)%\DrWeb\dwscanner.exe" /LITE /BI- /ok /TR /TB /AA /RP:C:\forum_drweb\dwlitescan_%random%.log /quit
goto LOG
:DRW
::DrWeb8-9
echo Start DrWeb Scanner stage one
"%programfiles%\DrWeb\dwscanner.exe" /AR- /AC- /BI- /ok /AA /RP:C:\forum_drweb\dwuserscan_%random%.log /FL-:C:\forum_drweb\critical.txt /quit
echo Start DrWeb Scanner stage two
"%programfiles%\DrWeb\dwscanner.exe" /LITE /BI- /ok /TR /TB /AA /RP:C:\forum_drweb\dwlitescan_%random%.log /quit
goto LOG
:LOG
chcp 1251 >nul
copy .\HiJackThis.exe C:\forum_drweb\ /y
C:\forum_drweb\HiJackThis.exe /silentautolog
del C:\forum_drweb\HiJackThis.exe /f /q
ver>C:\forum_drweb\x-info.log
set >>C:\forum_drweb\x-info.log
dir %windir% /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir %windir%\system32 /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir %windir%\system32\drivers /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir %temp% /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir "%AppData%" /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir .\ /a /-c >> C:\forum_drweb\x-info.log
ipconfig /all >C:\forum_drweb\ipconfig.log
explorer C:\forum_drweb\
exit
:ren
color 06
echo RENAME PLEASE CUREIT in to SCANNER.EXE and press ANY KEY !
pause && goto easy
:: <---код основной программы
:: Проверка
::Пытаемся записать пустой файл в корень системного раздела
cd.>c:\test.log
if exist c:\test.log Echo OK - привилегии получены.
exit
:: Проверка
::Пытаемся записать пустой файл в корень системного раздела
cd.>c:\test.log
if exist c:\test.log Echo OK - Work with Elevated Rights.>> C:\forum_drweb\x-info.log
exit
:LOG
chcp 1251 >nul
copy .\HiJackThis.exe C:\forum_drweb\ /y
C:\forum_drweb\HiJackThis.exe /silentautolog
del C:\forum_drweb\HiJackThis.exe /f /q
::test elevating
cd.>c:\test.log
if exist c:\test.log Echo OK - Work with Elevated Rights.>C:\forum_drweb\x-info.log
if not exist c:\test.log Echo OK - Work without Elevated Rights.>C:\forum_drweb\x-info.log
ver>>C:\forum_drweb\x-info.log
set >>C:\forum_drweb\x-info.log
dir %windir% /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir %windir%\system32 /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir %windir%\system32\drivers /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir %temp% /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir "%AppData%" /a /o:g-d /-c >> C:\forum_drweb\x-info.log
dir .\ /a /-c >> C:\forum_drweb\x-info.log
ipconfig /all >C:\forum_drweb\ipconfig.log
explorer C:\forum_drweb\
exit
Смотри сюда:%temp%
Детализируйте...Для полного счастья не достаёт смены временной папки...
cd.>c:\test.log
if exist c:\test.log Echo OK - Work with Elevated Rights.>> C:\forum_drweb\x-info.log
exit
reg add "HKLM\Software\Elevation_Test" /F
if %errorlevel%==0 set Admin=true
reg delete "HKLM\Software\Elevation_Test" /F
Вот так сразу тоже не стоит делать.if "%1"=="" (
Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"Admin","","runas",1 >"%~dp0Elevating.vbs"
cscript.exe //nologo "%~dp0Elevating.vbs" "%~dpnx0"& Goto :eof
)
>nul del "%~dp0Elevating.vbs"
ver | find "6." && if "%1"=="" (
Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"Admin","","runas",1 >"%~dp0Elevating.vbs"
cscript.exe //nologo "%~dp0Elevating.vbs" "%~f0"& Exit /B
)
Если ОСь англоязычная, скрипт вероятнее всего "вылетит".к имени отчёта добавил_%date%_%random%
::если в файле будут символы / - то произойдет замена на -
set cur_date=%date:/=-%
::переименовуем отчет:
ren "отчет.zip" "отчет_%cur_date%"
::Да можно и сразу
ren "отчет.zip" "отчет_%date:/=-%"
msinfo32 /nfo %homedrive%\forum_drweb\INFO.NFO
7za.exe a "forum_drweb_%date:/=-%".zip %homedrive%\forum_drweb\*.log %homedrive%\forum_drweb\*.nfo
echo msgbox "Завершено. После нажатия ОК откроется папка - Отправьте архив forum_drweb_%date:/=-%.zip на форум.">xmsg.vbs
start/wait xmsg.vbs && del xmsg.vbs /f/q
explorer .\
CHOICE /C 123 /M " LOG'S ONLY=[3],DOWNLOAD CUREIT=[1],SCAN=[2]..."
OK - Work with Elevated Rights.
Dragokas from SafeZone.cc says 'Есть права';)
Если в начало батника записать такой код:Для полного счастья не достаёт смены временной папки...
set tmp="%~dp0temp"
set temp=%tmp%
:menu
cls
echo 1. DOWNLOAD CUREIT
echo 2. SCAN
echo 3. LOG'S ONLY
echo --------------------------------
echo Enter Number and press ENTER.
set x=
set /p x=
if "%x%"=="1" goto Download
if "%x%"=="2" goto Scan
if "%x%"=="3" goto Logs
goto menu
Вот странное было ощущение, когда с этим столкнулся.. мне казалось она везде есть..(в досе разве не было ?) Спасибо за конструкцию.Phoenix, утилиты Choice нет в Windows XP.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?