[英]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.