Un petit script prenant le nom d’un répertoire similaire à :
XYZ_110904_ABC
et permettant d’extraire la date (ici “110904”) et de la spécifier comme propriété (ici la propriété “Date de la revue”) sur les documents contenus dans le répertoire parent.
if(-not(Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}))
{
Write-Host "Chargement de la librairie SharePoint pour PowerShell"
Add-PSSnapin Microsoft.SharePoint.PowerShell
}$web = Get-SPWeb http://companyweb
$listRP = $web.Lists["Revue de presse"]# On récupère uniquement les répertoire contenant 6 chiffres dans leur nom
$listRP.Folders | ? { $_.Name -match "(?<num>\d{6})" } | % {
$_ -match "(?<num>\d{6})" | out-null ;
Write-Host "Update => " $_.Name
$year = 0;
$month = 0;
$day = 0;
[System.Int32]::TryParse($matches[0].Substring(0,2), [ref] $year)
[System.Int32]::TryParse($matches[0].Substring(2,2), [ref] $month)
[System.Int32]::TryParse($matches[0].Substring(4,2), [ref] $day)
$year = $year+2000 # 11 => 2011
$revueDate = New-Object System.DateTime($year, $month, $day)
$files = $_.Folder.Files
foreach ($file in $files)
{
Write-host "Traitement du fichier ==> " $file.Name
$file.Item["Date de la revue"] = $revueDate
$file.Item.Update();
}
}
Si cela peut vous sauver quelques minutes de votre longue journée !