Existe uma maneira de desabilitar LocalizedResourceName (desktop.ini) globalmente?

Existe uma maneira de desabilitar LocalizedResourceName (desktop.ini) globalmente?

Estou usando um Windows 7 em alemão e, embora esteja bem com isso (caso contrário, instalaria uma versão em inglês), realmente não gosto de nomes de pastas localizados - gostaria de ver o verdadeiro nome da pasta.

É claro que eu poderia simplesmente excluir LocalizedResourceNametodos desktop.ini, mas me pergunto se há alguma configuração de registro que simplesmente faz com que o Windows ignore os nomes localizados.

Responder1

  • Como solução alternativa, observe que se você clicar na barra de endereço, o caminho completo não traduzido será exibido lá
  • Para se livrar do LocalizedResourceNameautomaticamente, instale um bash(por exemplo, deidiota) e execute
    for desktopini in $(find /c/Users -name desktop.ini); do sed -i "/^LocalizedResourceName/d" $desktopini; done
    Se desejar apenas comentar a entrada para posterior estorno, use
    "s/^\(LocalizedResourceName\)/;\1/"em vez de
    "/^LocalizedResourceName/d".
    É claro que você pode modificar o caminho /c/Userspara qualquer caminho desejado, apenas lembre-se de que msys/mingw usa barras e não dois pontos após a letra da unidade.
  • Pode ser uma maneira semelhante usando o PowerShell, mas nunca me preocupei em aprender isso, já que uso o bash de qualquer maneira ...esta postagem SOpode render um bom começo para o sedpapel. Ou você apenas verificaesta respostade uma pergunta basicamente duplicada
  • finalmente, observe que desktop.inié completamente ignorado se uma pasta não tiver o atributo sistema ou somente leitura definido

Responder2

Aqui está uma alternativaPowerShellabordagem para comentar oLocalizedResourceNamedeclaração emdesktop.iniarquivos:

$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 criar um script de desfazer, basta trocar os -replaceparâmetros:

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

Responder3

Para quem prefere o modo PowerShell, este script funcionou para mim:

$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
        }
    }
}

Ele procura arquivos ini da área de trabalho recursivamente na pasta atual e renomeia os diretórios que os contêm e onde eles contêm um LocalizedResourceName para o nome mostrado e, em seguida, exclui o arquivo ini da área de trabalho.

A saída deve ser suficiente para reverter o que foi feito se algo der errado.

Sem garantia.

informação relacionada