Refinando una frase simple para eliminar elementos

Refinando una frase simple para eliminar elementos

así que quería actualizar mi frase de eliminación de elementos. Quiero dividir la ruta del archivo principal (\HQDEVAPP004\C$\LoneStar\ProcessorHandlers\Test) en 2 variables que se definen en la parte superior del script. Algo como:

  1. $rootdir = "\HQDEVAPP004\C$\LoneStar"
  2. $svcdir = {inserte el nombre del servicio aquí} (es decir, enrutador de mensajes, controladores de procesador)

Y luego cree una tercera variable que sea la ruta completa del directorio, que simplemente une 1 + 2, lo cual sé que se puede hacer con el operador "+", corríjame si me equivoco.

La idea es que, eventualmente, podré ejecutar un bucle foreach para capturar y configurar la ruta svcdir, unir dinámicamente la ruta completa del directorio donde desea eliminar archivos, ejecutar el proceso de eliminación y luego mover en la carpeta del siguiente servicio. Espero haberlo explicado correctamente. Si por casualidad quisiera ver el resumen que he estado usando, lo pondré aquí abajo:

Get-ChildItem -recurse \\HQDEVAPP004\C$\LoneStar\ProcessorHandlers\Test\*.* | Remove-Item

Respuesta1

En primer lugar, la propiedad Path y LiteralPath Remove-Itemacepta comodines, por lo que su línea actual ya funcionaría sinGet-ChildItem

Remove-Item \\HQDEVAPP004\C$\LoneStar\ProcessorHandlers\Test\*.* -Recurse -Force

Acerca del "pegado", sugeriría cualquiera de los dos Join-Patho el operador Formato -f.

Join-Pathejemplo (con esto no tienes que preocuparte por las barras invertidas):

PS C:\> $rootdir = "\\HQDEVAPP004\C$\LoneStar"
PS C:\> $svcdir = "Message Router"
PS C:\> Join-Path $rootdir $svcdir
\\HQDEVAPP004\C$\LoneStar\Message Router

-fejemplo (tenga en cuenta que {0}ahí es donde se colocará el argumento que proporcione):

PS C:\> $rootdir = "\\HQDEVAPP004\C$\LoneStar\{0}"
PS C:\> $svcdir = "Message Router"
PS C:\> $rootdir -f $svcdir
\\HQDEVAPP004\C$\LoneStar\Message Router

Entonces, sí, puede buscar en todas las rutas y hacer este pegado, sin embargo, también puede proporcionar todas las rutas que desee directamente, Remove-Itemya que puede manejar una matriz:

cd "\\HQDEVAPP004\C$\LoneStar"
Remove-Item ".\Message Router\*.*",".\SomeOtherPath" -Recurse -Force

información relacionada