HOW TO PLACE .vbs within .bat

1

I'm setting up a project and I could not put the file .vbs inside .bat .

cadastro.bat :

    @echo off
    :Menu
    cls
    echo.ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    echo.º                                                                             º
    echo.º                  ESCOLHA UMA DAS OP€åES ABAIXO E TECLE ENTER                º
    echo.º                                                                             º
    echo.ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
    echo.º                                                                             º
    echo.º                                                                             º
    echo.º  [1] ADICIONAR                                                              º
    echo.º                                                                             º
    echo.º  [2] BUSCAR                                                                 º
    echo.º                                                                             º
    echo.º                                                                             º
    echo.º                                                                             º
    echo.º                                                                             º
    echo.º                                                                             º
    echo.º                                                                             º
    echo.º                                                                             º
    echo.º                                                                             º
    echo.º                                                                             º
    echo.ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    echo.          PC NAME ( %USERNAME% ) DATA: %date%  HORA: %time:~0,5%            
    echo. ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
    set /p opt1= Digite a op‡ao:
    if "%opt1%"=="" goto Error
    if %opt1%==1 goto:Adicionar else goto:Error
    if %opt1%==2 goto:BusCodigo else goto:Error
    :Error
    cls
    echo.
    echo.ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    echo.º                               º
    echo.º    Houve um erro.             º
    echo.º Foi digitado valor incorreto  º
    echo.º Digite o numero correto.      º
    echo.ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    rem pause>nul
    echo.
    echo.
    echo.
    echo.
    echo.
    echo.
    echo.
    echo.
    echo.
    echo.
    echo  VOLTANDO A TELA ANTERIOR...
    goto:Menu

    :Adicionar
    cls
    color 0b
    title SYSTEM - Adicionar Registro
    echo.ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    echo.º                                                      º                      º
    echo.º                    ADICIONAR REGISTRO                º [V] VOLTAR AO MENU   º
    echo.º                                                      º                      º
    echo.ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    rem ###Nesta linha Caso nao exista o arquivo para gravacao e leitura sera criado o arquivo com codigo zero "0" .###
    if NOT exist Cont echo 0 > Cont
    if NOT exist Cont2 echo 0 > Cont2

    set /p cod=< Cont
    set /a cod=%cod%+1

    set /p codg=< Cont2
    set /a codg=%codg%+1
    echo  %date%  %time:~0,5%
    echo  Codigo: %cod%
    echo.ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
    rem ###Obtendo dadas para a gravacao###.
    set codigo=%cod%
    set codig=%codg%
    echo.

    :Cad1
    set /p Nome= NOME :

    FOR /F "DELIMS=0123456789" %%§ IN ("%Nome%") DO (
    GOTO :Cad2
    )
    IF "%Nome%"=="" goto Campo1Branco
    if %Nome%==v CLS&goto Redireciona
    if %Nome%==V CLS&goto Redireciona
    GOTO :ERRO

    :Campo1Branco

    echo CAMPO EM BRANCO, DIGITE UM VALOR!

    goto Cad1

    :ERRO
    echo VOCE DIGITOU (%Nome%) DIGITE SOMENTE LETRAS
    echo.
    GOTO :Cad1

    :Cad2
    echo.
    set /p telf= TELEFONE :

    if %telf%==v CLS&goto Redireciona
    if %telf%==V CLS&goto Redireciona

    FOR /F "DELIMS=abcdefghijklmnopqrstuvxwyzABCDEFGHIJKLMNOPQRSTUVXWYZ" %%§ IN ("%telf%") DO (
    GOTO :Gravar
      )
    IF "%telf%"=="" goto Campo2Branco
    GOTO :ERRO2

    :Campo2Branco

    echo CAMPO EM BRANCO, DIGITE UM VALOR!

    goto Cad2

    :ERRO2
    rem CLS
    echo VOCE DIGITOU (%telf%) DIGITE SOMENTE NUMEROS
    echo.
    GOTO :Cad2

    rem ###Fim da obtencao dos dadas.###

    echo ------------------

    rem ###Gravando os dados###
    :Gravar
    echo. %codigo% > Cont
    echo. %codig% > Cont2
    echo %codigo%__Nome:............[ %Nome% ] >>Registros
    echo %codigo%__Telefone:........[ %telf% ] >>Registros
    echo %codigo%__Data:............[ %date% ] >>Registros
    echo %codigo%__Hora:............[ %time:~0,5% ] >>Registros
    echo.                                      >> Registros
    echo PC NAME( %USERNAME% ) Login:(%login%) Adicionou o Registro nº (%codigo%) data e hora:(%date% %time:~0,5%) >> Log_Adicionar_Registros.txt
    rem ###Fim da gravacao dos dados###


    echo REGISTRO ADICIONADO COM EXITO...
    ping localhost -n 2.8 >nul
    echo VOLTANDO AO MENU PRINCIPAL...
    ping localhost -n 2.8 >nul
    cls
    Goto Menu

    :BusCodigo
    cls
    echo.ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    echo.º                                                      º                      º
    echo.º                      BUSCAR CODIGO                   º     [V] VOLTAR       º
    echo.º                                                      º                      º
    echo.ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    set /P "codigoPesq=- DIGITE O CODIGO PARA PESQUISAR: "
    if %codigoPesq%==v CLS&goto Menu
    if %codigoPesq%==V CLS&goto Menu
    cls
    echo.ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    echo.º                                                      º                      º
    echo.º                      RESULTADOS BUSCAR CODIGO        º     [V] VOLTAR       º
    echo.º                                                      º                      º
    echo.ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    echo.
    if exist Registros find  /I "%codigoPesq%__" Registros
    echo.
    echo.
    set /p opcao3= DESEJA EXPORTAR ? (S-SIM / N-NAO):
    if %opcao3%== s goto:Export else goto :Error
    if %opcao3%== S goto:Export else goto :Error
    if %opcao3%== n goto:Buscar else goto :Error
    if %opcao3%== N goto:Buscar else goto :Error
    echo.

    :Export

      For /f "delims=" %%i in ('Cscript //nologo "script_.vbs" "Selecione uma pasta"') do Set "folder=%%i\%codigoPesq%__RELATORIO.txt"
 For /f "eol=- delims=" %%i in ('find /I "%codigoPesq%__" Registros') do >>"%folder%" Echo.%%i



    START %folder%
    ECHO.
    ECHO.
    ECHO.
    ECHO.
    ECHO                      VERIFIQUE O LOCAL [%folder%]
    ECHO.
    echo.
    echo                      ENTER PARA VOLTAR AO MENU PRINCIPAL
    pause>nul

    Goto :Menu

This is script_.vbs

Dim objFolder, objShell
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Selecione uma pasta.", &H4000, 0)
If Not (objFolder Is Nothing) Then
   wscript.echo objFolder.Self.path
Else
   wscript.echo 0
End If
    
asked by anonymous 16.03.2017 / 23:39

1 answer

1

You can generate .vbs at runtime of your batch:

echo Dim objFolder^, objShell > script_.vbs
echo Set objShell ^= CreateObject^(^"Shell.Application^"^) >> script_.vbs
echo Set objFolder ^= objShell.BrowseForFolder^(0^, ^"Selecione uma pasta.^"^, ^&H4000, 0^) >> script_.vbs
echo If Not ^(objFolder Is Nothing^) Then >> script_.vbs
echo    wscript.echo objFolder.Self.path >> script_.vbs
echo Else >> script_.vbs
echo    wscript.echo 0 >> script_.vbs
echo End If >> script_.vbs

Note that I put some ^ , because there are some special characters, and we need to escape them:

    
17.03.2017 / 12:42