将 Windows 资源管理器列宽设置为小于 100 像素

将 Windows 资源管理器列宽设置为小于 100 像素

我想进一步减少“文件扩展名”列的宽度:

在此处输入图片描述

我可以右键单击>更多>突出显示“文件扩展名”>但如果我想将“100”更改为更小的值,Windows 资源管理器不允许这样做:

在此处输入图片描述

答案1

我还没有升级到Win11,但是如果文件夹仍然在注册表项下保存其视图: HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags

然后是以下内容电源外壳将在显示该列的所有已保存视图中将列宽缩小File Extension至预设宽度 ( ) 。$NewWidthFile Extension

然后,您可以选择将其中任何一个设置为其关联FolderType通过使用Apply to Folders

$NewWidth           = 0x35
$Bags               = 'HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags'
$ExtPropKey         = [PSCustomObject]@{
                          'FmtID' = [GUID]'e4f10a3c-49e6-405d-8288-a23bd4eeaa6c'
                          'PID'   = 100
                      }
$PropKeyAsBytes     = $ExtPropKey.FmtID.ToByteArray() + [BitConverter]::GetBytes($ExtPropKey.PID)
$Encoder            = [System.Text.Encoding]::GetEncoding(28591)
$RegEx              = [Regex]$Encoder.GetString( $PropKeyAsBytes )

gci $Bags -Recurse |
    ? PSChildName -like '{*}' |
    ? Property -contains  'ColInfo' |
ForEach-Object{
    $ColInfoAsText   = $Encoder.GetString(( $ColInfoAsBytes = $_.GetValue('ColInfo') ))

    If ( ( $ColumnPresent = $RegEx.Match( $ColInfoAsText ) ).Success )
    {        
        $WidthOffset                  = $ColumnPresent.Index + 0x14
        $ColInfoAsBytes[$WidthOffset] = $NewWidth
        $Splat = @{
            'Path'    = $_.PSPath
            'Name'    = 'ColInfo'
            'Value'   = $ColInfoAsBytes
        }
        Set-ItemProperty @Splat
    }
}

相关内容