我正在尝试将具有相同基本名称的文件从失败的文件夹移至正确的文件夹。目前的代码是将FailedDocs文件夹移至GoodDocs,但我只希望其中的文件。
以下示例文件;
当test.pdf.xml(使用基本名时变为test.pdf)且等于好文件夹中的test.pdf时要移动的文件。
$sourceFiles = @("C:\Temp\FailedDocs")
$destinationFiles = @("C:\Temp\GoodDocs")
function Perform-File-Move {
for ($i = 0; $i -lt $sourceFiles.Count; $i++) {
Get-ChildItem $($sourceFiles[$i]) -Recurse | Where-Object {
$destinationFiles.Name -eq $sourceFiles.BaseName
} | ForEach-Object {
if ($destinationFiles.Name -eq $sourceFiles.BaseName) {
Move-Item -Path $($sourceFiles[$i]) -Destination
$($destinationFiles[$i]) -Force
} else {
Write-Host "Nothing to Move"
}
}
}
}
Perform-File-Move
答案 0 :(得分:0)
我想将基于基名称匹配名称将文件从源文件夹移动到目标文件夹的答案发布出来。
$sourceFiles = "C:\Temp\FailedDocs"
$destinationFiles = "C:\Temp\GoodDocs"
function Perform-Compare-And-Move{
foreach ($XmlFileName in @(Get-ChildItem -Path $sourceFiles)){
:outer
foreach ($PdfFileName in @(Get-ChildItem -Path $destinationFiles -Filter *.pdf)){
if ($XmlFileName.BaseName -eq $PdfFileName) {
Move-Item -Path $sourceFiles\$XmlFileName -Destination $destinationFiles -force
break :outer
}
else{}
}
}
}
Perform-Compare-And-Move