Administrar usuarios

05/07/2005 - 09:58 por Chete | Informe spam
Buenos dias a todos. Yo queria hacer un bat con msdos que me dijera el
tamaño total de las carpetas de cada usuario. La cuestion es ¿como lo hago?.
Esta claro que con linux no habria problemas, tienes muchas mas facilidades
a la hora de crear un script. Con dos le pones DIR /S /A creo que era, y si
te dice al final el tamaño total de la carpeta, pero claro tengo 20 carpetas
de usuarios y la idea era crear un exel donde se actualizara solo el campo
del tamaño de cada uno. El problema esta en que si tubieran siempre el mismo
nº de archivos, vincularia la salida de "dir /S /A" a la hoja de exel y le
diria que la casilla " 125 - C " contiene el tamaño de carpeta, pero claro
el log es variable segun la cantidad de archivos. Otra posibilidad seria
invertir el archivo, ya que el campo del tamaño esta en la penultima linea,
pero con dos no puede hacer que la ultima linea sea la primera, es decir
invertir el archivo, no?.

Bueno si alguien tiene alguna idea y puede ayudarme se lo agradeceria. Estoy
colapsado con esta tonteria, pero en parte me seria muy util.

Saludos y gracias
 

Leer las respuestas

#1 Marc [MVP Windows]
05/07/2005 - 10:37 | Informe spam
Crea un .vbs que lo haga

' Filename: dirSize.vbs
' Revision: v1.1
' Author: Roberto Mastroluca [MCSE]
'
' Modified: Marc [MVP Windows]. Parameters
'
' Date: 28/04/2004
' Revised: 28/09/2004
' Sintaxis: userInGroup.vbs logFile pathExamine

Const ForReading = 1, ForWriting = 2, ForAppending = 8

Dim size, lineafile, size_mb,SIZE1,SIZE2, DateNow
puntoycoma=" ; "

'***** Comprobación de argumentos *********
If WScript.Arguments.count > 0 Then
FicheroSalida = WScript.Arguments.item(0)
Else
FicheroSalida = InputBox("Nombre del fichero a crear", "Espacio en disco")
End If

If WScript.Arguments.count > 0 Then
PathFolder = WScript.Arguments.item(1)
Else
PathFolder = InputBox("Ruta a examinar", "Path")
End If

On Error Resume Next

'*** Creación fichero salida ****
Set objFSOw = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSOw.OpenTextFile (FicheroSalida, ForWriting, True)

'* Iteración

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(PathFolder)

'objTextFile.WriteLine("Ruta origen: " & objFolder.Name & " - " & Date)

Set colSubfolders = objFolder.Subfolders

For Each objSubfolder in colSubfolders

sizebyte = objSubFolder.Size
'size01 = objSubFolder.Size
size01 = sizebyte/1024
size01= sizebyte/1048576

objTextFile.WriteLine ("nombreServidor\" & objFolder.Name & "\" &
objSubfolder.Name & ", " & Round(size01,0))
Next


Saludos,

Marc
MCP - MVP Windows Shell/User
Oracle9i Certified Associate (OCA)

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.


"Chete" wrote:

Buenos dias a todos. Yo queria hacer un bat con msdos que me dijera el
tamaño total de las carpetas de cada usuario. La cuestion es ¿como lo hago?.
Esta claro que con linux no habria problemas, tienes muchas mas facilidades
a la hora de crear un script. Con dos le pones DIR /S /A creo que era, y si
te dice al final el tamaño total de la carpeta, pero claro tengo 20 carpetas
de usuarios y la idea era crear un exel donde se actualizara solo el campo
del tamaño de cada uno. El problema esta en que si tubieran siempre el mismo
nº de archivos, vincularia la salida de "dir /S /A" a la hoja de exel y le
diria que la casilla " 125 - C " contiene el tamaño de carpeta, pero claro
el log es variable segun la cantidad de archivos. Otra posibilidad seria
invertir el archivo, ya que el campo del tamaño esta en la penultima linea,
pero con dos no puede hacer que la ultima linea sea la primera, es decir
invertir el archivo, no?.

Bueno si alguien tiene alguna idea y puede ayudarme se lo agradeceria. Estoy
colapsado con esta tonteria, pero en parte me seria muy util.

Saludos y gracias



Preguntas similares