我的目标是创建一个执行以下操作的PS脚本:
a( 扫描源目录并生成具有匹配模式的文件列表,我在文件中找到了匹配模式 b( 获取这些文件和复制项目的列表以进行移动,然后将其存档。
当我对文件名进行"-Filter"时,我有这个过程工作,但在使用"选择字符串模式"时似乎无法让我的脚本工作。当它到达"$FileNames = @($Files |%{$_.Path.Substring($Source.Length(}("部分代码,它说文件不存在,因为它在@{Path}代码中传递?
错误视图
If ({$PatternIdentifier -ne "" -and $FileIdentifier -eq "" -and $FileExtension -ne ""})
{
$Files = get-childitem $Source -Filter $FileExtension | Select-String -pattern $PatternIdentifier -SimpleMatch |Select Path
}
$FileNames = @($Files | %{$_.Path.Substring($Source.Length)})
if($Files.Count -ne 0)
{
if ((test-path $ArchiveDestination) -eq 0)
{
New-Item -ItemType Directory -Force -Path $ArchiveDestination
}
foreach ($File in $Files)
{
Copy-Item $File -Destination $DestinationFolder
Copy-Item $File -Destination $ArchiveDestination
$count++
}
if($error.length -lt 0)
{
Write-Host ("Copied {0} files!!" -f $count)
$answer = $FilesTotalCount -$count
}
}
从属性中获取值:
|Select -expand path