Я использую немецкую версию Windows 7, и хотя меня это устраивает (иначе я бы установил английскую версию), мне очень не нравятся локализованные названия папок — я хотел бы видеть настоящие названия папок.
Конечно, я мог бы просто удалить LocalizedResourceName
все desktop.ini
, но мне интересно, есть ли какой-то параметр реестра, который заставляет Windows просто игнорировать локализованные имена.
решение1
- В качестве обходного пути обратите внимание, что если щелкнуть в адресной строке, там отобразится полный непереведенный путь.
- Чтобы избавиться от
LocalizedResourceName
автоматически, установитеbash
(например, измерзавец) и запустить
for desktopini in $(find /c/Users -name desktop.ini); do sed -i "/^LocalizedResourceName/d" $desktopini; done
Если вы хотите просто прокомментировать запись для последующего ее отмены, используйте
"s/^\(LocalizedResourceName\)/;\1/"
вместо
"/^LocalizedResourceName/d"
.
Конечно, вы можете изменить путь/c/Users
на любой желаемый, просто помните, что msys/mingw использует косую черту, а не двоеточие после буквы диска. - Похожий способ может быть и с использованием PowerShell, но я никогда не удосуживался его изучить, так как все равно использую bash...этот пост ТАКможет дать хороший старт для
sed
части. Или вы просто проверяетеэтот ответиз по сути дублирующего вопроса - наконец, обратите внимание, что
desktop.ini
полностью игнорируется, если папка не имеет атрибута «системный» или «только для чтения».
решение2
Вот альтернативаPowerShellподход, чтобы прокомментироватьLocalizedResourceNameзаявление врабочий стол.iniфайлы:
$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
}
}
Чтобы создать скрипт отмены, просто поменяйте -replace
параметры местами:
$Content -replace ";$LRN", $LRN
решение3
Для тех, кто предпочитает способ PowerShell, этот скрипт сработал у меня:
$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
}
}
}
Он рекурсивно ищет ini-файлы рабочего стола в текущей папке и переименовывает каталоги, которые их содержат и в которых содержится LocalizedResourceName, на отображаемые имена, а затем удаляет ini-файл рабочего стола.
Выходных данных должно быть достаточно, чтобы отменить сделанное, если что-то пойдет не так.
Без гарантии.