【发布时间】:2017-02-17 14:41:37
【问题描述】:
我想在文件夹中创建 desktop.ini 文件,这些文件在子文件夹中引用 .jpg 以便为父文件夹提供自定义图像。这可以手动执行该过程(右键单击文件夹>属性>自定义>选择文件)。
假设这样的文件夹结构:
C:\Test
---> Folder1
---> Fullsize
---> image.jpg
---> Folder2
---> Fullsize
---> image.jpg
在手动处理之前,父文件夹('Folder1')的属性为:'Directory'。
手动处理后,文件夹属性为'ReadOnly, Directory'。 “Fullsize”子文件夹保留'Directory'的原始属性。
desktop.ini 文件的创建内容如下:
[ViewState]
Mode=
Vid=
FolderType=Generic
Logo=C:\Test\Folder1\Fullsize\image.jpg
此外,编码为 UTF-8,文件属性设置为 HSA ('Hidden, System, Archive')。
点击确定后,文件夹立即显示图像预览。
将其转换为另一个文件夹的等效代码,我们有:
$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'
尽管如此,folder2 不会显示图像预览。
检查 Folder1 和 Folder2 的属性(Get-Item $path | Select Attributes),并且 desktop.ini 文件显示它们是相同的。
desktop.ini 的编码和实际内容是相同的,只是图像的路径不同。图像的路径是正确的。文件在每行的末尾包含 CRLF。我什至确保图像的路径是正确的(这并不重要)。
彻底被难住了。我还缺少什么手动过程?
Windows 10:版本 1607(操作系统内部版本 14986.1001)
【问题讨论】:
-
注意:如果您将此代码复制并粘贴到 PowerShell shell 中,它将创建一个带有 LF 而不是 CRLF 的 desktop.ini。
标签: windows powershell