如何将文件名基于文件夹名的文件移动到同一文件夹中的子文件夹



我已经挣扎了一段时间,希望有人能帮助我。

我有一堆*.pdf文件,其中的文件名还包含文件应该移动到的文件夹的名称。我发现的代码运行良好:

$Folder = "C:UsersBobDesktopScriptingBronmap"
$FileType = "*.pdf"
$Files = Get-ChildItem -Path $Folder -Filter $FileType
$RE = [regex]((Get-ChildItem -Path $Folder -Directory -Name) -Join '|')
ForEach($file in $Files){
if ($file.BaseName -Match $RE){
$file | Move-Item -Destination (Join-Path $Folder  $Matches[0] )
} 
else {
$file | Move-Item -Destination (Join-Path $Folder "No_Folder")
}
} 

我想要的是,将文件移动到命名文件夹中的子文件夹中,并使用某个名称";合同";。例如:

$file | Move-Item -Destination (Join-Path $Folder  $Matches[0] "Contracts" )

虽然子文件夹存在,但我无法使其工作。非常感谢您的帮助。

Join-Path有两个参数,在您的案例中是$Folders$Matches[0],所以"Contracts"不应该存在。

您可以使用Join-Path两次:

(Join-Path (Join-Path $Folder $Matches[0]) "Contracts")

或手动连接合同:

(Join-Path $Folder ($Matches[0] + "Contracts"))

相关内容

  • 没有找到相关文章

最新更新