Gibt es eine Möglichkeit, LocalizedResourceName (desktop.ini) global zu deaktivieren?

Gibt es eine Möglichkeit, LocalizedResourceName (desktop.ini) global zu deaktivieren?

Ich verwende ein deutsches Windows 7, und obwohl ich damit zufrieden bin (sonst würde ich eine englische Version installieren), mag ich lokalisierte Ordnernamen überhaupt nicht – ich möchte den wahren Ordnernamen sehen.

Natürlich könnte ich einfach LocalizedResourceNamealle einzelnen löschen desktop.ini, aber ich frage mich, ob es eine Registrierungseinstellung gibt, die Windows einfach dazu veranlasst, die lokalisierten Namen zu ignorieren.

Antwort1

  • Beachten Sie als Workaround, dass, wenn Sie in die Adressleiste klicken, dort der vollständige, nicht übersetzte Pfad angezeigt wird
  • Um das LocalizedResourceNameautomatisch loszuwerden, installieren Sie eine bash(zB vongit) und führen Sie aus
    for desktopini in $(find /c/Users -name desktop.ini); do sed -i "/^LocalizedResourceName/d" $desktopini; done
    Wenn Sie den Eintrag nur kommentieren möchten, um ihn später stornieren zu können, verwenden Sie
    "s/^\(LocalizedResourceName\)/;\1/"anstelle von
    "/^LocalizedResourceName/d".
    Natürlich können Sie den Pfad /c/Userszu jedem beliebigen Pfad ändern. Denken Sie jedoch daran, dass msys/mingw nach dem Laufwerksbuchstaben Schrägstriche und keine Doppelpunkte verwendet.
  • Mit Powershell könnte es ähnlich laufen, aber ich habe mir nie die Mühe gemacht, das zu lernen, weil ich sowieso Bash verwende ...dieser SO-Beitragkönnte ein guter Start für das sedTeil sein. Oder Sie überprüfen einfachdiese Antwortaus einer im Wesentlichen doppelten Frage
  • Beachten Sie abschließend, dass desktop.inies vollständig ignoriert wird, wenn für einen Ordner weder das System- noch das Nur-Lese-Attribut gesetzt ist.

Antwort2

Hier ist eine AlternativePower ShellAnsatz zum Auskommentieren derLokalisierterRessourcennameAussage indesktop.iniDateien:

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

Um ein Undo-Skript zu erstellen, tauschen Sie einfach die -replaceParameter aus:

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

Antwort3

Für alle, die die Powershell-Methode bevorzugen, dieses Skript hat bei mir funktioniert:

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

Es sucht rekursiv nach Desktop-INI-Dateien im aktuellen Ordner und benennt Verzeichnisse, die diese enthalten und in denen sie einen LocalizedResourceName enthalten, in den angezeigten Namen um und löscht anschließend die Desktop-INI-Datei.

Die Ausgabe sollte ausreichen, um bei etwaigen Problemen das Vorgehen rückgängig zu machen.

Ohne Gewährleistung.

verwandte Informationen