我正在使用德语版的 Windows 7,虽然我对此没意见(否则我会安装英文版),但我真的不喜欢本地化的文件夹名称 - 我想看到真正的文件夹名称。
当然,我可以简单地LocalizedResourceName
从每一个中删除desktop.ini
,但我想知道是否存在一些注册表设置导致 Windows 忽略本地化名称。
答案1
- 解决方法是,请注意,如果您点击地址栏,则会在那里显示完整的未翻译路径
- 为了
LocalizedResourceName
自动摆脱,请安装bash
(例如来自git)并运行
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
这是另一种选择电源外壳方法来注释掉本地化资源名称声明桌面配置文件文件:
$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 文件。
如果出现任何问题,输出应该足以恢复已完成的操作。
无保修。