Yo esta mañana estaba necesitando un convertor de bat a vbs y buscando por Internet me encontré con esto :
Código
@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 .
bueno no me quedo de otra que modificar ese código a mi manera y hacerlo funcional :
Código
@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
@echo off echo hola Put0s pause
después de convertirlo a vbs :
Código
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
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 .
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
Comenten . . .