Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   отображение работы (http://forum.oszone.net/showthread.php?t=308743)

blacktor 03-12-2015 20:11 2581144

отображение работы
 
Подскажите возможен ли вывод информации в vbs так же как bat?
bat я знаю, не сказать, чтобы очень хорошо, но на 4. С vbs знаком очень плохо, когда-то пробовал начать, но вот так и не начал. У меня уже есть готовый и работающий скрипт, который около 2-х лет работает без нареканий и я хочу его еще расширить, но возможности bat очень скудны. В добавок, на сколько я знаю, нет возможности скрыть исходный код, что немаловажно. Возможности vbs намного шире, в сравнении с bat и все катится к тому, чтобы реализовать этот же скрипт на vbs.

Мой скрипт на bat циклический, он бесконечно проверяет какие-либо события и я постоянно вижу его работу в виде echo. Скрипт постоянно трется в трее. Вот меня интересует вопрос, возможно ли видеть результат работы vbs так же как bat?

ну например ping 127.0.0.1 -t будет вечно висеть и в любой момент можно глянуть какой пинг. Примерно то же самое и у меня.

Iska 03-12-2015 21:08 2581168

Цитата:

Цитата blacktor
Подскажите возможен ли вывод информации в vbs так же как bat? »

На консоль — Вы имеете в виду? Да, возможен:
Код:

cscript.exe //nologo "Путь\Имя.vbs"
Цитата:

Цитата blacktor
В добавок, на сколько я знаю, нет возможности скрыть исходный код, что немаловажно. »

В WSH с этим примерно так же — есть возможность шифрования исходного кода, но вскрывается оно на ать-два первой же ссылкой из запроса в Google.

Цитата:

Цитата blacktor
ну например ping 127.0.0.1 -t будет вечно висеть и в любой момент можно глянуть какой пинг. »

Возможно. Кроме того, подключением сторонних библиотек возможно создание своих форм, всплывающих подсказок и т.п.

P.S. Возможности же PowerShell дают уже полноценную работу с окнами непосредственно «искаропки». Но и порог вхождения у него едва ли не на порядок выше.

blacktor 03-12-2015 22:15 2581205

Цитата:

Цитата Iska
В WSH с этим примерно так же — есть возможность шифрования исходного кода, но вскрывается оно на ать-два первом же ссылкой из запроса в Google. »

вы имеете ввиду фокус с файлом во временной папке?

Iska 04-12-2015 04:52 2581266

Нет. Я имею в виду: decrypt|decode Microsoft Script Encoder - Поиск в Google.

greg zakharov 04-12-2015 09:58 2581294

Цитата:

Цитата blacktor
...но возможности bat очень скудны.

Если гибриды, то как раз напротив. Код ниже генерирует болванки для гибридов (оригинальный пост), так что останется только приправить на свой вкус, используя предпочитаемую технологию (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



Время: 21:55.

Время: 21:55.
© OSzone.net 2001-