Создание собственного desktop.ini не имеет никаких эффектов, но оно происходит после того, как я хотя бы раз изменил значок папки вручную - PullRequest
0 голосов
/ 30 июня 2019

Как уже упоминалось в заголовке, я хочу изменить значки папок с помощью скрипта.Есть два случая:

  • Это не работает, когда я просто запускаю его нормально
  • Это работает, но только после того, как я вручную изменил значок папки перед рукой, который яне хочу делать

Я пробовал разные скрипты, от .bat до powershell, все они давали одинаковые результаты, я вставлю текущий код, с которым я работаю, но какупомянуто выше, это не работает, как я хотел бы, чтобы это работало

param 
(     
    [Parameter(Mandatory = $True, 
        Position = 0)] 
    [string]$FolderPath, 
    [Parameter(Mandatory = $True, 
        Position = 1)] 
    [string]$IconPath   
) 


$tmpDir = (Join-Path $env:TEMP ([IO.Path]::GetRandomFileName()))
mkdir $tmpDir -force >$null
$tmp = "$tmpDir\desktop.ini"

Add-Content $tmp '[.ShellClassInfo]'
Add-Content $tmp "IconResource=$IconPath,0"
Add-Content $tmp ""

(Get-Item -LiteralPath $tmp).Attributes = 'Archive, System, Hidden'

$shell = New-Object -com Shell.Application
$shell.NameSpace($FolderPath).MoveHere($tmp, 0x0004 + 0x0010 + 0x0400)

Remove-Item -LiteralPath $tmpDir -force

РЕДАКТИРОВАТЬ: @PetSerAl Спасибо за ваш комментарий, который решил проблему

...