代码之家  ›  专栏  ›  技术社区  ›  Nick LaMarca

编辑文件元数据(文件的详细信息选项卡)Powershell

  •  1
  • Nick LaMarca  · 技术社区  · 4 年前

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

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

    enter image description here

    0 回复  |  直到 4 年前
        1
  •  4
  •   mklement0    3 年前
    • 判断依据 this forum thread , 你只能 阅读 这样的 扩展文档属性 通过Windows(GUI)shell( Shell.Application COM API) -请参阅下一节。

    • For 更新 (编辑)属性。NET/PowerShell :

      • 非官方第三方NuGet包 这些都是。围绕Windows API的NET包装器可能提供了一种解决方案,如 this C# answer 请注意 many variations of these packages ( Microsoft.WindowsAPICodePack.* ) exist in the NuGet gallery ,有许多早期看似被遗弃的包裹。一个看起来仍然被维护的叉子的例子是 this repo .

      • For 图像文件 特别是标准。NET API 存在,但更新属性需要解决方法:请参阅 System.Drawing.Image.GetPropertyItem

      • 否则, 您必须使用 特定应用 API ,例如用于Microsoft Office应用程序的各种COM库;例如。, New-Object -ComObject Word.Application ; this documentation 可以提供进一步的信息。

      • 请注意 交互式 , 修改 -但不是 添加 -如果为给定的文档类型(如Microsoft Word)安装了文件资源管理器扩展名,则可以通过文件资源管理工具中的“属性”对话框进行属性设置 *.docx 文件)。


    阅读 以编程方式记录文档属性 :

    $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
    )
    

    请注意,所有属性值都返回为 ,如果未填写目标属性 空字符串 ( '' )被退回;尝试 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              
    
        2
  •  0
  •   PowerShellGuy    4 年前

    根据我的想法,我认为你可以通过玩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 有一个设定器,你应该可以改变它。它会有 {get} {set} 在下面 Definition .设置它应该像 $sFile.Comments = "blah blah blah"

    推荐文章