如何将文件(文件名基于文件夹名称)移动到同一文件夹中的子文件夹
How to move a file, with the filename based on the folder name, to a subfolder in the same folder
我已经苦苦挣扎了一段时间,希望有人能帮助我。
我有一堆 *.pdf 文件,文件名还包含文件应移动到的文件夹的名称。
我找到的代码运行良好:
$Folder = "C:\Users\Bob\Desktop\Scripting\Bronmap"
$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")
}
}
我想要的是将文件移动到指定文件夹中的子文件夹中,具有特定名称“Contracts”。例如:
$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"))
我已经苦苦挣扎了一段时间,希望有人能帮助我。
我有一堆 *.pdf 文件,文件名还包含文件应移动到的文件夹的名称。 我找到的代码运行良好:
$Folder = "C:\Users\Bob\Desktop\Scripting\Bronmap"
$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")
}
}
我想要的是将文件移动到指定文件夹中的子文件夹中,具有特定名称“Contracts”。例如:
$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"))