Eu seguiria assim: em vez de comparar objetos DateTime, use o método .toshortdatestring()
:
$location = "C:\install"
gci $location -file | % {
$date = $_.creationtime.toshortdatestring()
$fullpath = "$location\$date"
if (!(Test-Path $fullpath)) { mkdir $fullpath }
move-item $_.FullName $fullpath -Force
}
Isso irá procurar por todos os arquivos em $location
, pega a data de criação de cada objeto, test-path
s se a pasta já existe, senão irá criá-la, depois disso irá mover os arquivos para a pasta .