Has usado alguna vez Microsoft Excel como índice para localizar documentación?
Imagina el excel de la foto en el que usas la columna G para enlazar a documentos de algún recurso compartido.
Y que pasa cuando toda esa documentación se migra a otro servidor/share?
Podemos corregir automáticamente la ruta antigua por la nueva con Powershell:
Imagina el excel de la foto en el que usas la columna G para enlazar a documentos de algún recurso compartido.
Y que pasa cuando toda esa documentación se migra a otro servidor/share?
Podemos corregir automáticamente la ruta antigua por la nueva con Powershell:
function Release-Ref ($ref) { ([System.Runtime.InteropServices.Marshal]::ReleaseComObject( [System.__ComObject]$ref) -gt 0) [System.GC]::Collect() [System.GC]::WaitForPendingFinalizers() } ### main ### $cambios=0 $buscar=read-host "Cadena a buscar" $buscar=$buscar -replace '\\','\\' #para escapar el caracter reservado barra $buscar=$buscar -replace '\$','\$' #para escapar el caracter reservado dollar $reemplazar=read-host "Reemplazar por" $archivo=gci(".\IndiceDocumentacion.xlsx") $ruta=$archivo.directoryname $nombre=$archivo.basename $extension=$archivo.extension $filenamenew=$nombre + "_corregido" + $extension $objExcel = new-object -comobject excel.application $objExcel.Visible = $false $objExcel.DisplayAlerts = $False $objWorkbook = $objExcel.Workbooks.open($archivo.fullname) $objworksheets=$objWorkbook.Worksheets $objworksheets|%{ write-host $_.name -fore cyan $objWorksheet = $objWorkbook.Worksheets.Item($_.name) $hyperlinks = @($objWorksheet.hyperlinks) $hyperlinks|%{ if ($_.address -match $buscar) { write-host $_.Address $_.address=$_.address -replace("$buscar","$reemplazar") $cambios=1 } }#fin del foreach }#fin de recorrer worksheets if ($cambios -eq 1){$objWorkbook.SaveAs("$ruta\$filenamenew")} else{write-host "No hay cambios a realizar en $nombre$extension" -back green -fore black} $objExcel.Quit() $a = Release-Ref($objWorksheet) $a = Release-Ref($objWorkbook) $a = Release-Ref($objExcel)
Comentarios
Publicar un comentario