Gestion de ficheros en servidor windows

10/03/2005 - 20:11 por Ender | Informe spam
Saludos al grupo.
Tengo un equipo instalado con windows xp y lo estoy utilizando como servidor
de archivos dentro de una red.
El problema que tengo es que quiero "depurar" periodicamente los ficheros
que se encuentran en una carpeta determinada (eliminar aquellos que tengan
más de un mes de antiguedad) y no me aclaro la verdad.
¿Alguna sugerencia?
Gracias por vuestro tiempo.
Un saludo.

Enderjcp

Preguntas similare

Leer las respuestas

#1 Marc [MVP Windows]
10/03/2005 - 21:02 | Informe spam
Te puedes crear un script que elimine los archivos que tengan más de 30 días de antigüedad. A modo de ejemplo (lo acabo de crear en 5 minutos, ñor lo que deberás depurarlo) tienes esto

<pego>

'*********************************************************************************************
' Author: Marc [MVP Windows]
' Date: 10/03/2005
' Version: 1.0 Beta
' Revision:
' Sintaxis: deleteFiles DirOr AgeFile
'*********************************************************************************************

Const DeleteReadOnly = TRUE

Dim DirOr
Dim Ant

'*********************************************************************************************

On Error Resume Next
If WScript.Arguments.count > 0 Then
DirOr = WScript.Arguments.item(0)
Else
DirOr = InputBox("Nombre del directorio origen", "Directorio origen")
End If

If WScript.Arguments.count > 0 Then
Ant = WScript.Arguments.item(1)
Else
Ant = InputBox("Días de antigüedad", "Antigüedad")
End If

'*********************************************************************************************

strComputer = "."

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFiles = objFSO.GetFiles(DirOr)

For Each Files In objFiles.colFiles
If DateDiff("d", subCarpeta.DateCreated, Date) >= Ant Then
objFSO.DeleteFile(DirOr), DeleteReadOnly
End If
Next

Set objFiles = Nothing
Set objFSO = Nothing

</pego>



Saludos

Marc
MCP - MVP Windows Shell/User
Oracle9i Certified Associate (OCA)
NOTA. Por favor, las preguntas y comentarios en los grupos, así nos beneficiamos todos.

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

"Ender" escribió en el mensaje news:3Z0Yd.25455$
Saludos al grupo.
Tengo un equipo instalado con windows xp y lo estoy utilizando como servidor
de archivos dentro de una red.
El problema que tengo es que quiero "depurar" periodicamente los ficheros
que se encuentran en una carpeta determinada (eliminar aquellos que tengan
más de un mes de antiguedad) y no me aclaro la verdad.
¿Alguna sugerencia?
Gracias por vuestro tiempo.
Un saludo.

Enderjcp


Respuesta Responder a este mensaje
#2 Alezito [MS MVP]
10/03/2005 - 21:09 | Informe spam
Gracias Marc ! (ves tuuu)

Alejandro [MS MVP]
Windows - Shell/User


"Marc [MVP Windows]" escribió en el mensaje
news:%
Te puedes crear un script que elimine los archivos que tengan más de 30 días
de antigüedad. A modo de ejemplo (lo acabo de crear en 5 minutos, ñor lo que
deberás depurarlo) tienes esto

<pego>

'*********************************************************************************************
' Author: Marc [MVP Windows]
' Date: 10/03/2005
' Version: 1.0 Beta
' Revision:
' Sintaxis: deleteFiles DirOr AgeFile
'*********************************************************************************************

Const DeleteReadOnly = TRUE

Dim DirOr
Dim Ant

'*********************************************************************************************

On Error Resume Next
If WScript.Arguments.count > 0 Then
DirOr = WScript.Arguments.item(0)
Else
DirOr = InputBox("Nombre del directorio origen", "Directorio origen")
End If

If WScript.Arguments.count > 0 Then
Ant = WScript.Arguments.item(1)
Else
Ant = InputBox("Días de antigüedad", "Antigüedad")
End If

'*********************************************************************************************

strComputer = "."

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFiles = objFSO.GetFiles(DirOr)

For Each Files In objFiles.colFiles
If DateDiff("d", subCarpeta.DateCreated, Date) >= Ant Then
objFSO.DeleteFile(DirOr), DeleteReadOnly
End If
Next

Set objFiles = Nothing
Set objFSO = Nothing

</pego>



Saludos

Marc
MCP - MVP Windows Shell/User
Oracle9i Certified Associate (OCA)
NOTA. Por favor, las preguntas y comentarios en los grupos, así nos
beneficiamos todos.

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

"Ender" escribió en el mensaje
news:3Z0Yd.25455$
Saludos al grupo.
Tengo un equipo instalado con windows xp y lo estoy utilizando como
servidor
de archivos dentro de una red.
El problema que tengo es que quiero "depurar" periodicamente los ficheros
que se encuentran en una carpeta determinada (eliminar aquellos que tengan
más de un mes de antiguedad) y no me aclaro la verdad.
¿Alguna sugerencia?
Gracias por vuestro tiempo.
Un saludo.

Enderjcp


Respuesta Responder a este mensaje
#3 Marc [MVP Windows]
10/03/2005 - 21:34 | Informe spam
Una modificación: controlar que lo que te pasan es un número, arreglado un error al quere buscar los ficheros de un "folder", y cambiada la función de comparación de "antigüedad"

<pego>

'*********************************************************************************************
' Author: Marc [MVP Windows]
' Date: 10/03/2005
' Revision: 10/03/2005
' Version: 1.0 Beta
' Sintaxis: deleteFiles.vbs DirOr AgeFile
'*********************************************************************************************

Const DeleteReadOnly = TRUE

Dim DirOr
Dim Ant

'*********************************************************************************************

On Error Resume Next
If WScript.Arguments.count > 0 Then
DirOr = WScript.Arguments.item(0)
Else
DirOr = InputBox("Nombre del directorio origen", "Directorio origen")
End If

If WScript.Arguments.count > 0 Then
Ant = WScript.Arguments.item(1)
Else
Ant = InputBox("Días de antigüedad", "Antigüedad")
End If
On Error Resume Next

Ant = CLng(Ant)
If Err.Number <> 0 Then
msgBox Ant & " no es un numero valido"
End If

'*********************************************************************************************

strComputer = "."

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(DirOr) '******* Corregido
Set colFiles = objFolder.Files '******** Corregido

On Error Resume Next

For Each objFile in colFiles '******* Corregido
If Ant < Int(Date - objFIle.DateCreated) Then '********* Corregido
objFile.Delete True 'setting force to true. Deletes read-only file
End If
Next

Set objFolder = Nothing
Set objFSO = Nothing

</pego>


Saludos

Marc
MCP - MVP Windows Shell/User
Oracle9i Certified Associate (OCA)
NOTA. Por favor, las preguntas y comentarios en los grupos, así nos beneficiamos todos.

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

"Marc [MVP Windows]" escribió en el mensaje news:%
Te puedes crear un script que elimine los archivos que tengan más de 30 días de antigüedad. A modo de ejemplo (lo acabo de crear en 5 minutos, ñor lo que deberás depurarlo) tienes esto

<pego>

'*********************************************************************************************
' Author: Marc [MVP Windows]
' Date: 10/03/2005
' Version: 1.0 Beta
' Revision:
' Sintaxis: deleteFiles DirOr AgeFile
'*********************************************************************************************

Const DeleteReadOnly = TRUE

Dim DirOr
Dim Ant

'*********************************************************************************************

On Error Resume Next
If WScript.Arguments.count > 0 Then
DirOr = WScript.Arguments.item(0)
Else
DirOr = InputBox("Nombre del directorio origen", "Directorio origen")
End If

If WScript.Arguments.count > 0 Then
Ant = WScript.Arguments.item(1)
Else
Ant = InputBox("Días de antigüedad", "Antigüedad")
End If

'*********************************************************************************************

strComputer = "."

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFiles = objFSO.GetFiles(DirOr)

For Each Files In objFiles.colFiles
If DateDiff("d", subCarpeta.DateCreated, Date) >= Ant Then
objFSO.DeleteFile(DirOr), DeleteReadOnly
End If
Next

Set objFiles = Nothing
Set objFSO = Nothing

</pego>



Saludos

Marc
MCP - MVP Windows Shell/User
Oracle9i Certified Associate (OCA)
NOTA. Por favor, las preguntas y comentarios en los grupos, así nos beneficiamos todos.

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

"Ender" escribió en el mensaje news:3Z0Yd.25455$
Saludos al grupo.
Tengo un equipo instalado con windows xp y lo estoy utilizando como servidor
de archivos dentro de una red.
El problema que tengo es que quiero "depurar" periodicamente los ficheros
que se encuentran en una carpeta determinada (eliminar aquellos que tengan
más de un mes de antiguedad) y no me aclaro la verdad.
¿Alguna sugerencia?
Gracias por vuestro tiempo.
Un saludo.

Enderjcp


Respuesta Responder a este mensaje
#4 Marc [MVP Windows]
10/03/2005 - 21:36 | Informe spam
Es una adaptación del de "moveFiles" del otro día (y del que ya tengo la versión 2.0 en pruebas)


Saludos

Marc
MCP - MVP Windows Shell/User
Oracle9i Certified Associate (OCA)
NOTA. Por favor, las preguntas y comentarios en los grupos, así nos beneficiamos todos.

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

"Alezito [MS MVP]" escribió en el mensaje news:
Gracias Marc ! (ves tuuu)

Alejandro [MS MVP]
Windows - Shell/User


"Marc [MVP Windows]" escribió en el mensaje
news:%
Te puedes crear un script que elimine los archivos que tengan más de 30 días
de antigüedad. A modo de ejemplo (lo acabo de crear en 5 minutos, ñor lo que
deberás depurarlo) tienes esto

<pego>

'*********************************************************************************************
' Author: Marc [MVP Windows]
' Date: 10/03/2005
' Version: 1.0 Beta
' Revision:
' Sintaxis: deleteFiles DirOr AgeFile
'*********************************************************************************************

Const DeleteReadOnly = TRUE

Dim DirOr
Dim Ant

'*********************************************************************************************

On Error Resume Next
If WScript.Arguments.count > 0 Then
DirOr = WScript.Arguments.item(0)
Else
DirOr = InputBox("Nombre del directorio origen", "Directorio origen")
End If

If WScript.Arguments.count > 0 Then
Ant = WScript.Arguments.item(1)
Else
Ant = InputBox("Días de antigüedad", "Antigüedad")
End If

'*********************************************************************************************

strComputer = "."

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFiles = objFSO.GetFiles(DirOr)

For Each Files In objFiles.colFiles
If DateDiff("d", subCarpeta.DateCreated, Date) >= Ant Then
objFSO.DeleteFile(DirOr), DeleteReadOnly
End If
Next

Set objFiles = Nothing
Set objFSO = Nothing

</pego>



Saludos

Marc
MCP - MVP Windows Shell/User
Oracle9i Certified Associate (OCA)
NOTA. Por favor, las preguntas y comentarios en los grupos, así nos
beneficiamos todos.

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

"Ender" escribió en el mensaje
news:3Z0Yd.25455$
Saludos al grupo.
Tengo un equipo instalado con windows xp y lo estoy utilizando como
servidor
de archivos dentro de una red.
El problema que tengo es que quiero "depurar" periodicamente los ficheros
que se encuentran en una carpeta determinada (eliminar aquellos que tengan
más de un mes de antiguedad) y no me aclaro la verdad.
¿Alguna sugerencia?
Gracias por vuestro tiempo.
Un saludo.

Enderjcp






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida