PDA

Показать полную графическую версию : изменение даты/времени папки по ее имени


pzh2393
25-12-2017, 14:38
Добрый день!
Прошу помощи.
Есть множество папок (с вложениями) вида:
2016.01.12 - текст
2015.01 - текст
2017 - текст
Необходимо изменить дату создания всех папок на основании даты из имени этой папки.
В тех случаях где нет месяца или дня просто ставим значение "01".
Время создания можно любое (для всех одно и то же).

Iska
31-12-2017, 07:12
На PowerShell:
$sSourceFolder = 'C:\Мои проекты\0140'

if(Test-Path -LiteralPath $sSourceFolder -PathType Container) {
Get-ChildItem -LiteralPath $sSourceFolder -Recurse -Directory |`
ForEach-Object -Process {
if($_.Name -match "^(\d{4}|\d{4}\.\d{2}|\d{4}\.\d{2}\.\d{2}) - .+$") {
$sDate = $matches[1]

if($sDate.Length -eq 4) {
$dtDate = [System.DateTime]::ParseExact($sDate, "yyyy", $null)
} elseif($sDate.Length -eq 7) {
$dtDate = [System.DateTime]::ParseExact($sDate, "yyyy.MM", $null)
} else {
$dtDate = [System.DateTime]::ParseExact($sDate, "yyyy.MM.dd", $null)
}

$_.CreationTime = $dtDate
}
}
} else {
Write-Host "Can't find source folder [$sSourceFolder]." -ForegroundColor Red
}




© OSzone.net 2001-2012