|
Mostrar Temas
|
Páginas: [1]
|
1
|
Programación / Scripting / No consigo copiar carpetas mas antiguas. VBS. Help....
|
en: 24 Septiembre 2023, 15:02 pm
|
Hola a todos
Necesito copiar carpetas mas antiguas de x dias dentro de una carpeta, hacia otra carpeta por tareas de mantenimiento.
Hago este scrpit pero no me encuentra nada en oSubFolders, y tiene la ruta correcta en ofolder.
Da error en esta linea (Ruta de acceso no encontrada): fso.GetFolder(sfolder).Copy sCustomerPicturesPath
Root=C:\Users\Mycomputer\Documents\SD2 MaxAgeInDays=2
Function MoveDeleteOldFolders(Root,MaxAgeInDays)
Dim fso, sfolder, ofolder, oSubFolders Set fso = CreateObject ("Scripting.FileSystemObject")
If fso.FolderExists(Root) Then
Set ofolder = fso.GetFolder(Root) Set oSubFolders = ofolder.SubFolders Set sfolder = Nothing On Error Resume Next Err.clear
For Each sfolder in oSubFolders If Err.Number <> 0 Then Exit For 'If no permission or no subfolder in folder On Error goto 0 createdDate = FormatDateTime(sfolder.DateCreated, "2") If (DateDiff("d", createdDate, Date) > MaxAgeInDays) Then fso.GetFolder(sfolder).Copy sCustomerPicturesPath fso.DeleteFolder sfolder, True End If Next End If End Function
No se donde tengo el fallo.
Gracias por adelantado.
|
|
|
2
|
Programación / Scripting / No co sigo copiar una subcarpeta a otro destino. Help.
|
en: 24 Septiembre 2023, 12:59 pm
|
Dim fso, sfolder, ofolder, oSubFolders Set fso = CreateObject ("Scripting.FileSystemObject")
If fso.FolderExists(Root) Then
Set ofolder = fso.GetFolder(Root) Set oSubFolders = ofolder.SubFolders Set sfolder = Nothing 'ESAHMI.ESAMSGBOX Root 'ESAHMI.ESAMSGBOX CStr(ofolder) ESAHMI.ESAMSGBOX ofolder 'ESAHMI.ESAMSGBOX oSubFolders On Error Resume Next Err.clear
' For Each folder in fso.GetFolder(Root).SubFolders For Each sfolder in oSubFolders If Err.Number <> 0 Then ESAHMI.ESAMSGBOX Err.Number Exit For 'If no permission or no subfolder in folder End If On Error goto 0 ESAHMI.ESAMSGBOX sfolder ESAHMI.ESAMSGBOX oSubFolders createdDate = FormatDateTime(sfolder.DateCreated, "2") 'Getting folder date 2 = vbShortDate - Returns date: mm/dd/yyyy If (DateDiff("d", createdDate, Date) > MaxAgeInDays) Then fso.GetFolder(sfolder).Copy sCustomerPicturesPath fso.DeleteFolder sfolder, True End If Next
|
|
|
4
|
Programación / Scripting / Leer registro remoto con PSExec y guardarlo en una variable.
|
en: 1 Abril 2023, 11:28 am
|
Buenos dias
Necesitaria ayuda para leer un registro remoto y guardarlo en una variable que me retorne el BAT, no se si seria possible o abria que dejarlo en un fichero y luego leerlo, preferiria la primera opcion.
Tengo lo siguiente:
Fichero BAT.
%1 & ::RegKKey path. %2 & ::RegKKey name. %3 & ::RegKKey type. %4 & ::RegKKey value. %5 & ::User %6 & ::Pass. CmdKey /Add:administrador /User:%5 /Pass:%6 Reg Query %1 /V %2 /T %3 /D %4 /F
VBScript.
set objShell = CreateObject("WScript.Shell") cmd= "D:\NUBOTBAT\psexec.exe \\"& sIP &" -u " &AdminUserInkjet1 &" -p " &AdminPWDInkjet1 &" -d -c -h -i -realtime -f D:\NUBOTBAT\ReadReg.bat " &sPath &" "&sValueName &" " &sValueType &" " &Chr(34) &sValueData &Chr(34) objShell.Exec (cmd) set objShell = Nothing
Esto creo que leeria el registro pero como lo obtengo en una variable?
Gracias por adelantado
|
|
|
5
|
Programación / Scripting / Lectura de valores de registro limitada a 120 ????
|
en: 25 Noviembre 2022, 13:52 pm
|
Buenos dias
Estoy leyendo valores REG_MULIT_SZ con vbs y los guardo en una array de 300x3.
tengo un clave y dentro 10 subclaves y dentro de cada subclave unos valores entre 1 y 30, en total hay aproimadamente unos 150 valores.
Cuando los leo todos siempre se para en 120 valores y de ahi no pasa, no me da ningun error.
He probado de eliminar una subclave con 33 valores y entonces llega al final de la ultima subclave leyendo sus valores, parece como estar limitado a 120 valores.
Necesitaria una ayudita, GRACIAS
Aqui os dejo el codigo:
HKEY_LOCAL_MACHINE = &H80000002 KeyPath="SOFTWARE\WOW6432Node\NumReg"
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &"." & "\root\default:StdRegProv")
oReg.EnumKey HKEY_LOCAL_MACHINE, KeyPath, arrSubKeys Set oReg=Nothing i=0
For n=0 to ubound(arrSubKeys) Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &"." & "\root\default:StdRegProv") objReg.enumValues HKEY_LOCAL_MACHINE, keyPath+"\"+arrSubKeys(n), ValueNames, "REG_MULIT_SZ" Set oReg=Nothing j=0 For i=i to i+ubound(ValueNames) set WS = CreateObject("Wscript.Shell") arValues=WS.RegRead("HKLM\"+KeyPath+"\"+arrSubKeys(n)+"\"+ValueNames(j)) Set WS=Nothing DiagnosticWindowNumStr(i) =CStr(ValueNames(j)) For k=1 to ubound(arValues)+1 DiagnosticWindowNumValue(0,i)=CSng(ESAHMI.ESATAG.READVALUE(ValueNames(j))) 'Save current register value. DiagnosticWindowNumValue(k,i)=CSng(arValues(k-1)) 'Save minimum/maximun register allowed value. Next j=j+1 Next Next
|
|
|
6
|
Programación / Scripting / Reg add nu guarda bien numeros con espacios "1 0 0 0"
|
en: 18 Noviembre 2022, 15:55 pm
|
Hola a todos
Tengo que cambiar n registro de windows de un maquina del tipo REG_SZ, el contenido habitual es "1 1 0 0" y debo poder cambiarlo a "1 0 0 0" o "0 1 0 0" pero cuando envio el dato (string) simpre me pone la clave a 1 en el primer caso y a 0 en el segundo caso. A partir del espacio no contempla los siguientes caracteres. Si el dato no contiene espacios funciona correctamente.
Estoy usando Reg Add en un bat
Reg Add %1 /V %2 /T %3 /D %4 /F
Llamandolo desde psexec
sPath="Ruta de la clave" sValueName ="Nombre de la clave" ValueType="REG_SZ" sValueData="Valor de la clave"
IPMaquina = "xxx.xxx.xxx.xxx" AdminUserMaquina1="Administrador" AdminPWDMaquina="Password"
set objShell = CreateObject("WScript.Shell") cmd= "D:\NUBOTBAT\psexec.exe \\"& IPMaquina &" -u " &AdminUserMaquina1&" -p " &AdminPWDMaquina &" -d -c -h -i -realtime -f D:\NUBOTBAT\WriteReg.bat " &sPath &" "&sValueName &" " &ValueType &" " &sValueData
objShell.Exec (cmd)
Creo que me falta algo en el comando, alguna idea?
Gracias por adelantado
|
|
|
7
|
Programación / Scripting / Doble click sobre fichero en vBscript
|
en: 28 Septiembre 2022, 16:50 pm
|
Hola a todos.
Quisiera ejecutar un fichero desde Vbscript, pero sin conocer la aplicacion que lo ejecuta, o sea que lo ejecute la que este asociada con ese fichero. Asi poder abrir una image o txt o excel...
Alguien me podria ayudar con el codigo para simular un doble click en el fichero.
Gracias por adelantado.
|
|
|
8
|
Programación / Scripting / Permisos acceso a clave de registro PC remoto
|
en: 30 Enero 2022, 20:18 pm
|
Hola a todos
Intento poder leer unos registros entre los PC's de 2 maquinas con vbscript. El script de lectura en la maquina local funciona correctamente, pero cuando quiero acceder al registro de la maquina remota siempre obtengo el error: No se puede abrir el acceso HKEY_LOCAL_MACHINE. Un error impide abrir la clave. Los dos PC's tienen: - Activados el servicio Registro remoto. - Puedo conectar los registros remotos con regedit. - me conecto como usuario administrador con permisos totales. - Firewall estan desactivados. - Escritorio remoto habilitados. - Archivos e impresoras compartidas en redes publicas i privadas
He buscado por internet mil soluciones de permisos y directivas si exito.
Alguna idea?
Gracias por adelantado
|
|
|
9
|
Programación / Scripting / maximizar y posicionar ventana activa vbscript.
|
en: 20 Enero 2022, 08:44 am
|
Buenos dias
Debo maximizar y centrar la ventana activa de un programa de windows.
El siguiente script me maximiza sin problema pero quiero posicionarla centrada.
Como le doy la coordenada.
Set oShell = CreateObject("WScript.Shell") oShell.SendKeys "% x" Set oShell = Nothing
Gracias por avanzado.
|
|
|
10
|
Programación / Scripting / raíz no valida en la clave del registro. Ayuda. Vbscript
|
en: 19 Enero 2022, 08:50 am
|
Buenos dias
Estoy intentando leer/escribir registros de windows y en la lectura no tengo problema, pero en la escritura siempre me da este error "raíz no valida en la clave del registro", alguien me puede echar un cable. Gracias. Os dejo un script de prueba en VBscript.
Set objShell = CreateObject("WScript.Shell")
sPRUEBA="HKEY_LOCAL_MACHINE\SOFTWARE\PRUEBA\PRUEBA" VALOR=objShell.RegRead(sPRUEBA) MsgBox("The value is " & VALOR) VALOR=4
;****** Hasta aqui correcto ************
objShell.RegWrite sPRUEBA,VALOR,"REG_DWORD"
MsgBox("The value is " & value) Set objShell = Nothing
|
|
|
|
|
|
|