[batch] [aporte] Bat to vbs converter

Iniciado por **Aincrad**, 20 Enero 2018, 18:21 PM

0 Miembros y 1 Visitante están viendo este tema.

**Aincrad**

bueno como dice el titulo este es un convertidor de batch a vbs .

Yo esta mañana estaba necesitando un convertor de bat a vbs y buscando por Internet me encontré con esto :

Código (bash) [Seleccionar]
@echo off
set codevbs1=cmd.run "cmd /c
set codevbs2=", vbHide


echo set cmd = createobject("wscript.shell" ) >> temp.vbs

for /f "tokens=*" %%x in ('type batavbs.txt') do (echo %codevbs1% %%x %codevbs2%) >> temp.vbs
type "temp.vbs


en realidad este code no me funciona , tampoco el lo creo nunca pensó que pasaría con los comandos if -else del batch a convertir .

bueno segui buscando de pagina en pagina y no encontraba nada. .. . pueden creerlo. incluso en otros foros me encontré con el mismo código inutil.

INCLUSO EN ESTE FORO HAY UN TEMA REFERENTE A ESTO " Convertir bat en vbs " PERO NO DICE ABSOLUTAMENTE NADA , OSEA NO DA NINGUNA SOLUCION A LO QUE SE BUSCA .

POR ESTO ES QUE DECIDÍ POSTEARLO EN EL FORO PARA QUE SI EN ALGÚN FUTURO ALGUIEN BUSCA LO MISMO QUE YO LO CONSIGA .  ;-)  ;D

bueno no me quedo de otra que modificar ese código a mi manera y hacerlo funcional :

Código (bash) [Seleccionar]
@echo off
set cd=%cd%
set t=%temp%
if exist "%t%\batavbs.txt" del "%t%\batavbs.txt"
if exist "%t%\archivo.bat" del "%t%\archivo.bat"
if exist "%t%\temp.vbs" del "%t%\temp.vbs"
goto vbs
:vbs
color b
set codevbs1=ar.writeline "
set codevbs2="
echo.
echo  Escribe el nombre del bat a cambiar a vbs + el formato ".bat o .cmd"
echo.
set /p batavbs= ^>^>^>
if not exist %batavbs% (goto:err)
type %batavbs% > %t%\batavbs.txt

(
echo Const TemporaryFolder ^= 2
echo.
echo Dim fso^: Set fso ^= CreateObject^("Scripting.FileSystemObject"^)
echo.
echo Dim tempFolder^: tempFolder ^= fso^.GetSpecialFolder^(TemporaryFolder^)
echo.
echo set b^=createobject^("wscript.shell"^)
echo Set objfso ^= createobject^("scripting.filesystemobject"^)
echo Set ar^= objfso^.createtextfile^(tempFolder ^& "archivo.bat"^,true^)
echo.
) >> %t%\temp.vbs

for /f "tokens=*" %%x in ('type %t%\batavbs.txt') do (echo %codevbs1% %%x %codevbs2%) >> %t%\temp.vbs
type "%t%\temp.vbs

(
echo ar^.close
echo b^.run tempFolder ^& "archivo.bat"^, ^1, true
echo ^'Create By Salvador F. Krilewski.
) >> %t%\temp.vbs
copy "%t%\temp.vbs" "%cd%\%batavbs%Converted.vbs"
del "%t%\batavbs.txt"
cls
color a
echo.
echo Proceso terminado .  yyy y  PUT0 EL QUE LO LEA  jajaja
echo.
pause & exit

:err
cls
color c
echo.
echo EL ARCHIVO QUE ESCRIBISTE NO EXISTE PERRO
ECHO.
pause & exit


bueno así es como convierte :


el bat :

Código (bash) [Seleccionar]
@echo off
echo hola Put0s
pause


después de convertirlo a vbs :

Código (vb) [Seleccionar]
Const TemporaryFolder = 2

Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")

Dim tempFolder: tempFolder = fso.GetSpecialFolder(TemporaryFolder)

set b=createobject("wscript.shell")
Set objfso = createobject("scripting.filesystemobject")
Set ar= objfso.createtextfile(tempFolder & "archivo.bat",true)

ar.writeline " @echo off "
ar.writeline " echo hola Put0s "
ar.writeline " pause "
ar.close
b.run tempFolder & "archivo.bat", 1, true
'Create By Salvador F. Krilewski.


y si se quiere volver invisible al ejecutar se cambia la penúltima linea por esto :

Código (vb) [Seleccionar]
b.run tempFolder & "archivo.bat", vbhide, true

bueno en realidad eso no es un convertidor ya que el vbs en si genera el bat del principio jejeje bueno pero mejor es algo que nada .  ;D

este convertidor tiene un bug no voy a decir cual es pero lo que voy a decir es que para corregirlo necesito un equivalente del signo ^ de batch para vbs el que lo sepa porfavor comentelo para poder corregir el unico bug de este convertidor  ;D

Comenten . . .