使用 PowerShell 编辑文件的元数据(Windows 文件资源管理器中文件的“详细信息”选项卡)

问题描述 投票:0回答:3

我想编辑文件的“注释”字段。

我看到了几个如何读取文件元数据的示例,但没有看到如何编辑文件元数据?

powershell
3个回答
7
投票

以编程方式读取文档属性:

$file = 'C:\path\to\some\file.doc' # The index of the property to retrieve. $propIndex = 24 # Comments $folder = (New-Object -ComObject Shell.Application).NameSpace((Split-Path $file)) # Output the value of the "Comments" property. $folder.GetDetailsOf( $folder.ParseName((Split-Path -Leaf $file)), 24 )
请注意,所有属性值均以 

strings 形式返回,如果未填写目标属性,则返回 empty string (''

) ;尝试将 
0
 (文件名)作为标准属性来验证调用原则上是否有效。

这是查找所有支持的属性名称索引的

代码

$folder = (New-Object -ComObject Shell.Application).NameSpace("$pwd") # Note: Assumes that no indices higher than 1000 exist. 0..1000 | % { if ($n = $folder.GetDetailsOf($null, $_)) { [pscustomobject] @{ Index = $_; Name = $n } } }
在我的 Windows 10 机器上,结果是:

Index Name ----- ---- 0 Name 1 Size 2 Item type 3 Date modified 4 Date created 5 Date accessed 6 Attributes 7 Offline status 8 Availability 9 Perceived type 10 Owner 11 Kind 12 Date taken 13 Contributing artists 14 Album 15 Year 16 Genre 17 Conductors 18 Tags 19 Rating 20 Authors 21 Title 22 Subject 23 Categories 24 Comments 25 Copyright 26 # 27 Length 28 Bit rate 29 Protected 30 Camera model 31 Dimensions 32 Camera maker 33 Company 34 File description 35 Masters keywords 36 Masters keywords 42 Program name 43 Duration 44 Is online 45 Is recurring 46 Location 47 Optional attendee addresses 48 Optional attendees 49 Organizer address 50 Organizer name 51 Reminder time 52 Required attendee addresses 53 Required attendees 54 Resources 55 Meeting status 56 Free/busy status 57 Total size 58 Account name 60 Task status 61 Computer 62 Anniversary 63 Assistant's name 64 Assistant's phone 65 Birthday 66 Business address 67 Business city 68 Business country/region 69 Business P.O. box 70 Business postal code 71 Business state or province 72 Business street 73 Business fax 74 Business home page 75 Business phone 76 Callback number 77 Car phone 78 Children 79 Company main phone 80 Department 81 E-mail address 82 E-mail2 83 E-mail3 84 E-mail list 85 E-mail display name 86 File as 87 First name 88 Full name 89 Gender 90 Given name 91 Hobbies 92 Home address 93 Home city 94 Home country/region 95 Home P.O. box 96 Home postal code 97 Home state or province 98 Home street 99 Home fax 100 Home phone 101 IM addresses 102 Initials 103 Job title 104 Label 105 Last name 106 Mailing address 107 Middle name 108 Cell phone 109 Nickname 110 Office location 111 Other address 112 Other city 113 Other country/region 114 Other P.O. box 115 Other postal code 116 Other state or province 117 Other street 118 Pager 119 Personal title 120 City 121 Country/region 122 P.O. box 123 Postal code 124 State or province 125 Street 126 Primary e-mail 127 Primary phone 128 Profession 129 Spouse/Partner 130 Suffix 131 TTY/TTD phone 132 Telex 133 Webpage 134 Content status 135 Content type 136 Date acquired 137 Date archived 138 Date completed 139 Device category 140 Connected 141 Discovery method 142 Friendly name 143 Local computer 144 Manufacturer 145 Model 146 Paired 147 Classification 148 Status 149 Status 150 Client ID 151 Contributors 152 Content created 153 Last printed 154 Date last saved 155 Division 156 Document ID 157 Pages 158 Slides 159 Total editing time 160 Word count 161 Due date 162 End date 163 File count 164 File extension 165 Filename 166 File version 167 Flag color 168 Flag status 169 Space free 172 Group 173 Sharing type 174 Bit depth 175 Horizontal resolution 176 Width 177 Vertical resolution 178 Height 179 Importance 180 Is attachment 181 Is deleted 182 Encryption status 183 Has flag 184 Is completed 185 Incomplete 186 Read status 187 Shared 188 Creators 189 Date 190 Folder name 191 Folder path 192 Folder 193 Participants 194 Path 195 By location 196 Type 197 Contact names 198 Entry type 199 Language 200 Date visited 201 Description 202 Link status 203 Link target 204 URL 208 Media created 209 Date released 210 Encoded by 211 Episode number 212 Producers 213 Publisher 214 Season number 215 Subtitle 216 User web URL 217 Writers 219 Attachments 220 Bcc addresses 221 Bcc 222 Cc addresses 223 Cc 224 Conversation ID 225 Date received 226 Date sent 227 From addresses 228 From 229 Has attachments 230 Sender address 231 Sender name 232 Store 233 To addresses 234 To do title 235 To 236 Mileage 237 Album artist 238 Sort album artist 239 Album ID 240 Sort album 241 Sort contributing artists 242 Beats-per-minute 243 Composers 244 Sort composer 245 Disc 246 Initial key 247 Part of a compilation 248 Mood 249 Part of set 250 Period 251 Color 252 Parental rating 253 Parental rating reason 254 Space used 255 EXIF version 256 Event 257 Exposure bias 258 Exposure program 259 Exposure time 260 F-stop 261 Flash mode 262 Focal length 263 35mm focal length 264 ISO speed 265 Lens maker 266 Lens model 267 Light source 268 Max aperture 269 Metering mode 270 Orientation 271 People 272 Program mode 273 Saturation 274 Subject distance 275 White balance 276 Priority 277 Project 278 Channel number 279 Episode name 280 Closed captioning 281 Rerun 282 SAP 283 Broadcast date 284 Program description 285 Recording time 286 Station call sign 287 Station name 288 Summary 289 Snippets 290 Auto summary 291 Relevance 292 File ownership 293 Sensitivity 294 Shared with 295 Sharing status 297 Product name 298 Product version 299 Support link 300 Source 301 Start date 302 Sharing 303 Availability status 304 Status 305 Billing information 306 Complete 307 Task owner 308 Sort title 309 Total file size 310 Legal trademarks 311 Video compression 312 Directors 313 Data rate 314 Frame height 315 Frame rate 316 Frame width 317 Spherical 318 Stereo 319 Video orientation 320 Total bitrate
    

0
投票
我的想法是,我想你也许可以通过使用 COM 对象来做到这一点

$myFileObj = Get-Item -Path "C:\path\to\file" $shellCom = New-Object -ComObject Shell.Application $sDirectory = $shellCom.NameSpace($myFileObj.Directory.FullName) $sFile = $sDirectory.ParseName($myFileObj.Name)
现在对 

Get-Member

 对象执行 
$sFile
,因此 
$sFile | Get-Member
。如果您看到属性 
Comments
 有一个 setter,您应该能够更改它。 
{get} {set}
 下会有 
Definition
。设置它应该像
$sFile.Comments = "blah blah blah"
一样简单
    


0
投票
我使用 Exiftool 来更改“评论”。

要更改评论:

exiftool -XPComment="New Comment" FileName.jpg
查看评论:

exiftool -XPComment 1.jpg
    
© www.soinside.com 2019 - 2024. All rights reserved.