elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda batch  (Leído 4,307 veces)
Ronxs

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Ayuda batch
« en: 24 Marzo 2024, 18:45 pm »

¿Cómo puedo abrir el Panel de Archivos Temporales con un bat?


En línea

hwpoison

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda batch
« Respuesta #1 en: 24 Marzo 2024, 18:51 pm »

Cual sería ese panel?


En línea

Ronxs

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Ayuda batch
« Respuesta #2 en: 24 Marzo 2024, 18:55 pm »

Cual sería ese panel?

Entras en el panel de control > Sistema > Almacenamiento > Archivos Temporales. Ahí te muestra varias opciones para eliminar archivos temporales que no aparecen en Temp o %Temp% Por eso quiero crear un script que se ejecute automaticamente.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Ayuda batch
« Respuesta #3 en: 25 Marzo 2024, 05:23 am »

Entras en el panel de control > Sistema > Almacenamiento > Archivos Temporales.

Lo más cerca que me parece que puedes llegar, es abriendo la página 'Almacenamiento' utilizando el siguiente comando:

Código:
start ms-settings:storagesense

La misma duda se formuló en el año 2020 en la comunidad de Microsoft, y a día de hoy sigue sin solución:




De todas formas, en la página 'Archivos Temporales' se reflejan los mismos elementos temporales que están disponibles en el 'liberador de espacio en disco', el cual puedes ejecutar con el siguiente comando, para la unidad C:

Código:
CLEANMGR /d C



O sin parámetros, para elegir la unidad:

Código:
CLEANMGR





También puedes configurar la limpieza automática.

Primero utiliza el siguiente comando para configurar (activar o desactivar las casillas de) los elementos que se deben eliminar de forma automática:
Código:
CLEANMGR /sageset:9999
(solo se requiere configurarlo una única vez)

Y para realizar la limpieza automática, utiliza este otro comando:
Código:
CLEANMGR /sagerun:9999

Más información: https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/cleanmgr

Aténtamente,
Elektro.
« Última modificación: 25 Marzo 2024, 06:01 am por Eleкtro » En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Ayuda batch
« Respuesta #4 en: 25 Marzo 2024, 07:22 am »

Ya que no parece existir un atajo integrado con "ms-settings:", me puse a desarrollar una solución alternativa:

Con la ayuda de herramientas de inspección (o spy) de ventanas (herramienta utilizada: Microsoft UI Inspect) averigué el identificador de automation del botón con texto "Archivos temporales" (Automation Id: "SystemSettings_StorageSense_Breakdown_12_Button") en la ventana UWP de la página del panel de control, y luego tan solo utilicé la infraestructura de UI Automation para automatizar la invocación del botón.

Dicho procedimiento lo he implementado en el siguiente script de PowerShell (esto no es algo que se pueda hacer en una herramienta tan limitada como Batch):

Archivos Temporales.ps1
Código
  1. using namespace System.Windows.Automation
  2.  
  3. Add-Type -AssemblyName UIAutomationClient
  4.  
  5. Start-Process ms-settings:storagesense
  6.  
  7. $window = $null
  8. while ($window -eq $null) {
  9.    Start-Sleep -Milliseconds 500
  10.    $window = [AutomationElement]::RootElement.FindFirst([TreeScope]::Children, `
  11.        (New-Object PropertyCondition([AutomationElement]::NameProperty, "Configuración")))
  12. }
  13.  
  14. # En este ejemplo obtengo el botón mediante el texto "Archivos temporales":
  15. $buttonTemporaryFiles = $window.FindFirst([TreeScope]::Descendants, `
  16.    (New-Object AndCondition (
  17.        (New-Object PropertyCondition([AutomationElement]::ControlTypeProperty, [ControlType]::Button)),
  18.        (New-Object PropertyCondition([AutomationElement]::NameProperty, "Archivos temporales"))
  19.    )))
  20.  
  21. <#
  22. # También podría obtener el botón mediante el identificador de automation,
  23. # aunque desconozco si el identificador podría ser distinto dependiendo de
  24. # la cantidad de botones/elementos disponibles, o de otras versiones de Windows:
  25.  
  26. $buttonTemporaryFiles = $window.FindFirst([TreeScope]::Descendants, `
  27.    (New-Object AndCondition (
  28.        (New-Object PropertyCondition([AutomationElement]::ControlTypeProperty, [ControlType]::Button)),
  29.        (New-Object PropertyCondition([AutomationElement]::AutomationIdProperty, "SystemSettings_StorageSense_Breakdown_12_Button"))
  30.    )))
  31. #>
  32.  
  33. if ($buttonTemporaryFiles -eq $null) {
  34.    Write-Error "Can't find ""Archivos temporales"" button."
  35. } else {
  36.    $invokePattern = $buttonTemporaryFiles.GetCurrentPattern([InvokePattern]::Pattern)
  37.    $invokePattern.Invoke()
  38. }

El resultado:



Nota: El script solo funcionará en un sistema operativo en Español (debido al texto de la ventana y del botón). Probado en Windows 10.

Aténtamente,
Elektro.
« Última modificación: 25 Marzo 2024, 08:03 am por Eleкtro » En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines