¿Hay alguna forma de desactivar LocalizedResourceName (desktop.ini) globalmente?

¿Hay alguna forma de desactivar LocalizedResourceName (desktop.ini) globalmente?

Estoy usando Windows 7 en alemán y, aunque estoy bien con eso (de lo contrario, instalaría una versión en inglés), realmente no me gustan los nombres de carpetas localizados; me gustaría ver el nombre real de la carpeta.

Por supuesto, podría simplemente eliminarlos LocalizedResourceNamede todos desktop.ini, pero me pregunto si hay alguna configuración de registro que simplemente haga que Windows ignore los nombres localizados.

Respuesta1

  • Como solución alternativa, tenga en cuenta que si hace clic en la barra de direcciones, la ruta completa no traducida se muestra allí.
  • Para deshacerse de LocalizedResourceNameautomáticamente, instale un bash(por ejemplo, desdegit) y ejecute
    for desktopini in $(find /c/Users -name desktop.ini); do sed -i "/^LocalizedResourceName/d" $desktopini; done
    Si desea simplemente comentar la entrada para su posterior reversión, utilice
    "s/^\(LocalizedResourceName\)/;\1/"en lugar de
    "/^LocalizedResourceName/d".
    Por supuesto, puede modificar la ruta /c/Usersa cualquier ruta que desee, solo recuerde que msys/mingw usa barras diagonales y no dos puntos después de la letra de la unidad.
  • Podría ser una forma similar de usar powershell, pero nunca me molesté en aprenderlo ya que uso bash de todos modos...esta publicación SOpodría ser un buen comienzo para el sedpapel. O simplemente revisasesta respuestade una pregunta básicamente duplicada
  • Finalmente, tenga en cuenta que desktop.inise ignora por completo si una carpeta no tiene configurado el atributo de sistema o de solo lectura.

Respuesta2

Aquí tienes una alternativaPotencia Shellenfoque para comentar elNombre de recurso localizadodeclaración enescritorio.iniarchivos:

$LRN = 'LocalizedResourceName'
gci desktop.ini -Hidden -Recurse -ea silent | ForEach{
    $Content = Get-Content $_ -raw
    If ( $Content -match $LRN ) {
        $Content -replace $LRN, ";$LRN" | Set-Content $_ -force
    }
}

Para crear un script de deshacer, simplemente intercambie los -replaceparámetros:

$Content -replace ";$LRN", $LRN

Respuesta3

Para cualquiera que prefiera la forma powershell, este script funcionó para mí:

$desktopinis = gci -Recurse -Hidden . | where { $_.Name -eq "desktop.ini" }

foreach ($ini in $desktopinis) {

    $content = $ini | get-content
    foreach ($line in $content) {
        if ($line -cmatch "^LocalizedResourceName=") {

            $newname = $line.substring(22) # propertyname plus one for the equals sign

            $before = $ini.Directory.FullName
            $after  = $ini.Directory.Parent.FullName + "\" + $newname

            Write-Host ("Renaming '" + $before + "' to '" + $after + "'.")

            Move-Item -Path $before -Destination $after
            Remove-Item -Path ($after + "\desktop.ini") -Force
        }
    }
}

Busca archivos ini del escritorio de forma recursiva en la carpeta actual y cambia el nombre de los directorios que los contienen y donde contienen un LocalizedResourceName al nombre mostrado, luego elimina el archivo ini del escritorio.

El resultado debería ser suficiente para revertir lo que se hizo si algo sale mal.

Sin garantía.

información relacionada