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 LocalizedResourceName
alle 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
LocalizedResourceName
automatisch loszuwerden, installieren Sie einebash
(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/Users
zu 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
sed
Teil sein. Oder Sie überprüfen einfachdiese Antwortaus einer im Wesentlichen doppelten Frage - Beachten Sie abschließend, dass
desktop.ini
es 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 -replace
Parameter 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.