Показать полную графическую версию : отображение работы
blacktor
03-12-2015, 20:11
Подскажите возможен ли вывод информации в vbs так же как bat?
bat я знаю, не сказать, чтобы очень хорошо, но на 4. С vbs знаком очень плохо, когда-то пробовал начать, но вот так и не начал. У меня уже есть готовый и работающий скрипт, который около 2-х лет работает без нареканий и я хочу его еще расширить, но возможности bat очень скудны. В добавок, на сколько я знаю, нет возможности скрыть исходный код, что немаловажно. Возможности vbs намного шире, в сравнении с bat и все катится к тому, чтобы реализовать этот же скрипт на vbs.
Мой скрипт на bat циклический, он бесконечно проверяет какие-либо события и я постоянно вижу его работу в виде echo. Скрипт постоянно трется в трее. Вот меня интересует вопрос, возможно ли видеть результат работы vbs так же как bat?
ну например ping 127.0.0.1 -t будет вечно висеть и в любой момент можно глянуть какой пинг. Примерно то же самое и у меня.
Подскажите возможен ли вывод информации в vbs так же как bat? »
На консоль — Вы имеете в виду? Да, возможен:
cscript.exe //nologo "Путь\Имя.vbs"
В добавок, на сколько я знаю, нет возможности скрыть исходный код, что немаловажно. »
В WSH с этим примерно так же — есть возможность шифрования исходного кода, но вскрывается оно на ать-два первой же ссылкой из запроса в Google.
ну например ping 127.0.0.1 -t будет вечно висеть и в любой момент можно глянуть какой пинг. »
Возможно. Кроме того, подключением сторонних библиотек возможно создание своих форм, всплывающих подсказок и т.п.
P.S. Возможности же PowerShell дают уже полноценную работу с окнами непосредственно «искаропки». Но и порог вхождения у него едва ли не на порядок выше.
blacktor
03-12-2015, 22:15
В WSH с этим примерно так же — есть возможность шифрования исходного кода, но вскрывается оно на ать-два первом же ссылкой из запроса в Google. »
вы имеете ввиду фокус с файлом во временной папке?
Нет. Я имею в виду: decrypt|decode Microsoft Script Encoder - Поиск в Google (https://www.google.ru/search?q=decrypt%7Cdecode+Microsoft+Script+Encoder).
greg zakharov
04-12-2015, 09:58
...но возможности bat очень скудны.Если гибриды, то как раз напротив. Код ниже генерирует болванки для гибридов (оригинальный пост (http://www.cyberforum.ru/post8363884.html)), так что останется только приправить на свой вкус, используя предпочитаемую технологию (PowerShell, Python, Perl, Ruby, PHP, HTA, WSF, VBScript, JScript).@echo off
setlocal enabledelayedexpansion
set "i=0"
for %%i in (%*) do set /a "i+=1"
if "!i!" neq "1" goto:man
for %%i in (cmd js hta php pl ps1 py rb vbs wsf) do (
if "%1" equ "%%i" set "#=%%i"
)
if "!#!" equ "" goto:man
set "i=0"
for /f "tokens=1 delims=:" %%i in (
'findstr /bn ":%1 :eof_%1" "%~f0"'
) do set "arr.!i!=%%i"&set /a "i+=1"
set /a "arr.0=arr.0+1"
set /a "arr.1=arr.1-1"
>test.cmd (for /l %%i in (!arr.0!, 1, !arr.1!) do (
for /f "tokens=1,* delims=][" %%j in (
'find /n /v "" "%~f0" ^| findstr %%~i'
) do echo:%%k
))
endlocal
exit /b
:man
for %%i in (
"Usage: %~n0 [cmd][js][hta][php][pl][ps1][py][rb][vbs][wsf]"
" cmd - pure cmd template"
" js - CMD\JScript template"
" hta - CMD\HTA template"
" php - CMD\PHP template"
" pl - CMD\Perl template"
" ps1 - CMD\PowerShell template"
" py - CMD\Python template"
" rb - CMD\Ruby template"
" vbs - CMD\VBScript template"
" wsf - CMD\WSF template"
) do echo:%%~i
exit /b
:cmd
@echo off
setlocal
endlocal
exit /b
:eof_cmd
:js
0</* :
@cscript /nologo /e:jscript "%~f0" %*&exit /b */0;
(function() {
}());
:eof_js
:hta
<^!-- :
@start mshta "%~f0"&exit /b
-->
<html>
<head>
<title></title>
<meta name="author" content="" />
<hta:application id=""
applicationname=""
border="thin"
contextmenu="no"
maximizebutton="no"
minimizebutton="no"
scroll="no"
singleinstance="yes"
sysmenu="yes"
version="1.0" />
</head>
<body>
</body>
</html>
:eof_hta
:php
0<?/* :
@echo off
for %%i in (php.exe) do if not exist "%%~$PATH:i" (
echo:PHP has not been found.&exit /b
)
php "%~f0" %*
exit /b
*/
echo "\r";
?>
:eof_php
:pl
@for %%i in (perl.exe) do @if exist "%%~$PATH:i" (perl -x "%~f0" %*&exit /b) else (exit /b)
#^!/usr/bin/perl
:eof_pl
:ps1
<# :
@echo off
for %%i in (powershell.exe) do if not exist "%%~$PATH:i" (
echo:PowerShell has not been found.&exit /b
)
powershell /nop /ex bypass^
"&{[ScriptBlock]::Create((gc '%~f0') -join [Char]10).Invoke(@(&{$args}%*))}"
exit /b
#>
:eof_ps1
:py
@for %%i in (python.exe) do @if exist "%%~$PATH:i" (python -x "%~f0" %*&exit /b) else (exit /b)
:eof_py
:rb
@for %%i in (ruby.exe) do @if exist "%%~$PATH:i" (ruby -x "%~f0" %*&exit /b) else (exit /b)
#^!/usr/bin/ruby
:eof_rb
:vbs
::'@cscript /nologo /e:vbscript "%~f0" %*&exit /b
:eof_vbs
:wsf
<?xml : version="1.0" encoding="utf-8"?> ^^<^!-- :
@echo off
cscript /nologo "%~f0?.wsf" /job:foo1 %*
exit /b
-->
<package>
<job id="foo1">
<script language="JScript"><^![CDATA[
WScript.echo('foo1 job');
]]></script>
</job>
<job id="foo2">
<script language="VBScript"><^![CDATA[
WScript.Echo "foo2 job"
]]></script>
</job>
</package>
:eof_wsf
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.