Issue
The properties of a file should be exported to a text file using a template.
Solution
The first step is to create a template, the format of the template is quite flexible. In this example the following html template is used:
<html> <table border="1"> <tr> <td>{Author}</td> <td>{Classification}</td> <td>{Created By}</td> </tr> </table> </html>
The following script will then replace the property names with their corresponding values:
$templatePath = "C:\temp\template.txt" $destinationPath = "C:\temp\template.html" $regex = [regex]"\{+(?i)\b[A-Z\s]+\b\}" $template = Get-Content -Path $templatePath $propertyMatches = $regex.Matches($template) foreach($propertyMatch in $propertyMatches){ $propertyName = $propertyMatch.Value.Trim( @('{','}') ) $propertyValue = $file.$propertyName $template = ($template -replace $propertyMatch.Value, $propertyValue) } Write-Host $template $template | Out-File $destinationPath -Append
- Define the template file that should be used
- Define the destination file that should be created / appended to
- Match the regex against the content of the template file to find the required properties
- Replace all the property names in the template file with their actual values
- Write the result to the destination file
Example
Using the template shown before the output should look similar to this:
<html> <table border="1"> <tr> <td>Assembly1.dwg</td> <td>Design Document</td> <td>Administrator</td> </tr> </table> </html>
Remarks
- This code snippet will always use the same destination file and append to it.