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 !