親フォルダにカスタムイメージを与えるために、サブフォルダ内の.jpgを参照するdesktop.iniファイルをフォルダ内に作成したいとします。これは、プロセスを手動で実行する(右クリックフォルダー>プロパティ>カスタマイズ> FILEを選択)。カスタムフォルダアイコンのPowerShellでdesktop.iniをWindows 10で動作しない
そうのようなフォルダ構造と仮定:'Directory'
:手動プロセスの前に
C:\Test
---> Folder1
---> Fullsize
---> image.jpg
---> Folder2
---> Fullsize
---> image.jpg
を、親フォルダ( 'Folder1には')の属性を持っています。
手動処理後、フォルダの属性は'ReadOnly, Directory'
です。 「Fullsize」サブフォルダは元の属性が'Directory'
のままです。
のDesktop.iniファイルがそうのような内容で作成される:
[ViewState]
Mode=
Vid=
FolderType=Generic
Logo=C:\Test\Folder1\Fullsize\image.jpg
はまた、エンコードはUTF-8であり、ファイルのプロパティは、HSA('Hidden, System, Archive'
)に設定されています。
OKをクリックするとすぐに、フォルダに画像のプレビューが表示されます。別のフォルダのコードと同等にこれを回す
は、我々は持っている:
$folder2 = 'C:\Test\Folder2'
$folder2Image = "$folder2\Fullsize\image.jpg"
$ini = @"
[ViewState]
Mode=
Vid=
FolderType=Generic
Logo=$Folder2Image
"@
Set-ItemProperty $Folder2 -Name Attributes -Value 'ReadOnly'
# Out-File creates UTF-8 with BOM so use [System.IO.File]
[System.IO.File]::WriteAllLines("$Folder2\desktop.ini", $ini)
$inifile = Get-Item "$Folder2\desktop.ini"
$inifile.Attributes = 'Archive, System, Hidden'
をこれにもかかわらず、フォルダ2には、画像のプレビューが表示されません。彼らが同じになるようにそれらを表示し、desktop.iniをファイル|(属性を選択するには、Get-項目$パス)Folder1にとFOLDER2の属性を確認する
。
desktop.iniのエンコードと実際の内容は、画像へのパスを除いて同じです。画像へのパスが正しい。ファイルには、各行の最後にCRLFが含まれています。私はイメージへの道筋が正しいケースであることを保証しています(問題ではない)。
完全に切り詰められています。私が行方不明になっている手動処理が他に何かできますか?
Windowsの10:バージョン1607(OSビルド・14986.1001)
注:このコードをコピーしてPowerShellに貼り付けるとCRLFではなく、LFでdesktop.iniを作成します。 – Robin