我意识到这个问题似乎已被问过一千次,而且我已经阅读了大部分(如果不是全部的话)(最常见的是新的ps-drive或使用alphaFS)。我从来没有看到这个建议真正付诸代码。
我的程序工作正常,我现在已经对它进行了编码,但有一个例外是偶尔遇到的太长的路径异常。 虽然我从不太长的路径开始,但我将递归传递路径长度以查找具有特定扩展名的所有文件并移动它。 我只是想知道如何测试get-childitem并开始制作一个新的临时ps驱动器而没有例外。
代码:(部分内容)
Get-ChildItem -Path $loc -File -Filter $extension -Recurse |
Where-Object { $_.FullName -inotmatch $folder_name } |
ForEach-Object {
if((Test-Path (Join-Path $Destination $_)) -eq $true) {
$tmp_name = "$($_.BaseName)$(Get-Date -Format "dd_MM_yyyy_hh_mm_ss")$($_.Extension)"
Rename-Item $_.FullName $tmp_name
Move-Item ((Split-Path -Path $_.FullName)+"\"+$tmp_name) -Destination $Destination -Verbose 4>>$Destination\$filename -Force;
}
else{$_ | Move-Item -Destination $Destination -Verbose >>$Destination\$filename -Force
}
}
这基本上测试文件是否存在于我想要移动到的位置,如果存在,将使用名称中的当前时间重命名。
现在我想实现新的ps-drive如果get-childitem路径达到200长度。但据我所知,在查询路径长度并且已经遇到异常之前,您无法进行过滤。
或者我错了?