Problemilla con VBS

Iniciado por z3nth10n, 22 Mayo 2012, 21:26 PM

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

z3nth10n

Hola amigos, bueno yo creo que la pregunta que voy a formular es sencilla.

Yo tengo este code, es para averiguar en MB la cantidad de RAM que tienes:

For Each instance In GetObject("winmgmts:").InstancesOf("Win32_ComputerSystem")
wscript.echo "Total Memory: " & Round(instance.TotalPhysicalMemory / 1048576, 0) & "MB"
Next


Ok, ahora lo que quiero es fusionarlo con esto:

Set objfso = createobject("scripting.filesystemobject")
Set archivotexto = objfso.createtextfile("C:\archivo.txt",true) 'creamos el archivo
archivotexto.writeline "Este es el texto que estoy escribiendo" 'escribimos una linea
archivotexto.writeblanklines(2) 'escribimos 2 lineas en blanco
archivotexto.writeline "Aqui mas texto" ' escribimos otra linea de texto
archivotexto.close


Se supone que esto sirve para crear un archivo, y meterle unos datos.

Tengo dos problemas, uno es:

Este código:

Set objfso = createobject("scripting.filesystemobject")
Set archivotexto = objfso.createtextfile("%APPDATA%\...\mem.txt",true)
archivotexto.writeline & Round(instance.TotalPhysicalMemory / 4194304, 0) &
archivotexto.close


No funciona, y como puedo hacer que funcione la direccion en %APPDATA% en VBS??

Gracias, un saludo.

Interesados hablad por Discord.

Eleкtro

#1
Cita de: Seazoux en 22 Mayo 2012, 21:26 PM
como puedo hacer que funcione la direccion en %APPDATA% en VBS??

Fusión:
Código (vb) [Seleccionar]
Set objFSO = CreateObject("Scripting.FileSystemObject")
objfso.createtextfile "C:\file.txt",false
Set objFile = objFSO.OpenTextFile("C:\file.txt", 8)

For Each instance In GetObject("winmgmts:").InstancesOf("Win32_ComputerSystem")
objFile.Write "Total Memory: " & Round(instance.TotalPhysicalMemory / 1048576, 0) & "MB"
Next


PD: La conversión de bytes a MB del ejemplo que has tomado no es nada perfecta... No dice la cantidad real de MB.


Appdata:
Código (vb) [Seleccionar]

set wshshell = createobject("wscript.shell")
wscript.echo wshshell.expandenvironmentstrings("%APPDATA%")



La obtención de la memoria Ram en MB, En Batch:
Código (dos) [Seleccionar]
@echo off
Setlocal enabledelayedexpansion
For /F "tokens=2 delims=,=" %%# in ('WMIC MEMPHYSICAL get MaxCapacity /format:list') do (
Set Bytes=%%#
Set /A MB=!Bytes! / 1024
Echo: Memoria total: !mb! MB > "File.txt"
)
Exit


Salu2.








z3nth10n

#2
Ah sorry, es que lo multiplique por cuatro para que diese el cuarto de la memoria real, porque lo necesito para una cosita.
Dandole a los sueños, encontre la solucion (si yo cuando duermo me doy cuenta de las cosas), dije ostias si me ha faltado la parte principal del código.
Gracias de todas formas por lo de appdata.

EDIT: A ver si me puedes resolver mi otro tema. Es qe tengo una solución un poco mala.
Pero necesito opciones, porque lo que yo peinso es dejar una aplicacion nada mas. Para hacerla en HTA y otra en BATCH.

Ya se que me explico como el culo, lo siento. XD

Interesados hablad por Discord.

Eleкtro

Cita de: Seazoux en 23 Mayo 2012, 07:44 AM
EDIT: A ver si me puedes resolver mi otro tema. Es qe tengo una solución un poco mala.
Pero necesito opciones, porque lo que yo peinso es dejar una aplicacion nada mas. Para hacerla en HTA y otra en BATCH.

De HTA y PHP no tengo ni idea xD, Mejor dejemos que lo intenten resolver los expertos ::)

Además, Eso de "dos apartados" que intentas hacer con batch no lo entiendo en tu otro tema :P

Saludos