私はドイツ語版の 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 を使用しているため、それを学ぶ気にはなりませんでした...このSOの投稿部品のスタートに良い結果をもたらすかもしれませ
sed
ん。または、この答え基本的に重複した質問から - 最後に、
desktop.ini
フォルダにシステム属性または読み取り専用属性が設定されていない場合は完全に無視されることに注意してください。
答え2
代替案はこちらパワーシェルコメントアウトするアプローチローカライズされたリソース名声明文デスクトップ.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 ファイルを削除します。
何か問題が発生した場合、出力は実行した内容を元に戻すのに十分なものでなければなりません。
保証なし。