我遇到一个问题,即在目的地中组合Copy-Item和使用Join-Path会导致文件夹创建文件夹&文件夹名称中的扩展名,而不是复制原始文件。
我尝试了以下代码的几种变体。此外,我尝试使用{} for Destination使其成为一个脚本块,但最终抛出一个错误,说没有输入,因此无法进行评估。我也尝试将-ItemType设置为file,但是会抛出相同的异常错误。如果有帮助,我的PS版本是v2.0.1.1。
假设所有变量都已实例化并且工作正常,我已经单独测试了每个变量
Get-ChildItem -Path $Src -Recurse -Force | Where-Object {$_.Name -notcontains "Archive"}|
ForEach-Object {
if(!$_.PSIsContainer){
$DateStr = $_.BaseName.Substring(0,2)+'/'+$_.BaseName.Substring(3,2)+'/'+$_.BaseName.Substring(6,4)
$FileDate = get-date $DateStr
If ( $FileDate -ge $Date ) {
$ParentOjbect = $_.Directory
$Parent = $ParentOjbect.Name
Copy-Item -Path (Join-Path -Path $Src -ChildPath '\*' ) -Destination (Join-Path $Dst '{0} {1}' -f $Parent,$_.Name)
}}
}