Powershell脚本将文件从一个文件夹移动到同一文档库中的另一个文件夹

时间:2020-10-08 09:33:51

标签: powershell sharepoint document

我有一个包含多个文件夹的文档库“ Documents1”。尝试编写Powershell脚本以将放置在多个子文件夹中的文件(必须从.xlsx读取)移动到同一文档库下的另一个名为“冗余”的文件夹。 Powershell的新手只是尝试了以下内容,但无济于事

$Web = Get-SPWeb "test.com"
$DocLib = $Web.Lists["Documents1"]           
$filenames  = Get-Content 'F:\sample\test4.xlsx' | Select-Object -Unique

$result = foreach($name in $filenames) {
    $move = foreach ($ListItem in ($DocLib.Items | Where-Object { $_["Name"] -like "*$name*" })) {
        $File = $DocLib.Files.Add($ListItem.Name, $ListItem, $true)
        }
    }
}

2 个答案:

答案 0 :(得分:0)

假设您不介意将文件列表存储在txt文件中。您可以使用以下内容。

$SOURCEDIR="C:\Users\YOUR SOURCE DIR\TEST1"
$TARGETDIR="C:\Users\YOUR TARGET DIR\TEST2"
$FILELIST="C:\Users\LOCATION OF FILE LIST\filelist.txt" 

$filenames  = Get-Content $FILELIST
foreach ($file in $filenames)
{
Get-ChildItem -Path $SOURCEDIR -Recurse | Where-Object -FilterScript {($_.name -match $file)}  | Move-Item -Destination $TARGETDIR
Write-Output "File moved " $file
}

答案 1 :(得分:0)

这是一个有关在同一文档库中的文件夹之间移动文件的演示,您可以添加判断条件,

$web=Get-SPWeb "http://sp"
    
    $listName="lib"

$list = $web.Lists[$listName]

$TargetFolder = $Web.Url + "/" + $list.RootFolder.Url + "/"+ "bb"

$sourcefolder=$list.rootfolder.SubFolders["folder"]

$files = $sourcefolder.Files

foreach ($item in $files) {

     $File=$Web.GetFile($Item.URL);

     $TargetPath=$TargetFolder+"/"+$file.name;

     $File.MoveTo($TargetPath);

     Write-Host "Moved Item:"$item.Name;

}