我有一个脚本,可以从MySQL查询创建文本文件。它仅包含6个长度较长的订单号的列表:
C5P7M7
C5NMHD
C5MB2H
C5P278
C5NVSJ
我必须在文件名类似于以下示例的目录中找到这些订单号,并将其重命名为仅前6个字符。
C5NVSJ_2018-11-21_02.39.17.pmf
C5P278__2018-11-21_02.39.17.pmf
.
.
到目前为止,我的脚本是
$file = File.txt
if (Test-Path -Path $fromv) {
foreach($F in $file) {
$wtf2 = Get-ChildItem $fromv | ?{ $_.Name -match $F+'*'} | %{ Copy-Item $_.FullName $todirs -Force }
}
$Copied = Get-ChildItem -Path $todirs -Filter "*.pmf" | rename-item -Force -newname { [string]($_.name).Substring(0,6) + '.pmf' }
}
问题在于脚本也复制了具有相似文件名的文件,而不仅仅是完全相同的文件名。如何将-match
与子字符串一起使用?