簡體   English   中英

Powershell 腳本將文件從一個文件夾移動到同一文檔庫中的另一個文件夾

[英]Powershell script to Move files from one folder to other in same document library

我有一個包含多個文件夾的文檔庫“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)
        }
    }
}

假設您不介意將文件列表保存在 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
}

這是一個在同一個文檔庫的文件夾之間移動文件的演示,你可以添加你的判斷條件,

$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;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM