Use Powershell to import a folder of files
There are a variety of ways to import files to Content Manager. If you want granular control you may choose to write some code. This Powershell script uses a CheckinStyle to import all EML files from a folder.
Add-Type -Path "c:\[CM Binary Path]\HP.HPTRIM.SDK.dll" $database = New-Object HP.HPTRIM.SDK.Database $database.Id = "L1" $database.WorkgroupServerName = "local" $database.Connect() $checkinStyle = New-Object HP.HPTRIM.SDK.CheckinStyle($database, "test sec"); $files = [System.IO.Directory]::GetFiles("c:\\junk\\testimport", "*.eml", [System.IO.SearchOption]::TopDirectoryOnly); foreach ($file in $files) { Try { $inputDoc = New-Object HP.HPTRIM.SDK.InputDocument($file); $rec = $checkinStyle.SetupNewRecord($inputDoc) $rec.Save() [System.IO.File]::Move($file, [System.IO.Path]::Combine("c:\\junk\\imported\\", [System.IO.Path]::GetFileName($file))) Write-Host "Imported: " $rec.Title + " / " + $rec.Uri } Catch { $ErrorMessage = $_.Exception.Message Write-Host "Error: " $ErrorMessage + " / " + $file } } $database.Dispose()
To use this script:
- set the location of your Content Manager binaries in the first line,
- use your database Id in the $database,
- if your work-group server is not on the local machine set the WorkGroupServerName,
- replace the name in the Checkin Style Style constructor,
- if you want to import files other than EML change the '*.eml' to something else,
- set the source folder name, also the destination folder in the Move method (ensure this destination folder exists), then
- run the script from Powershell.
Written on May 30, 2018