Here is the simple script for this:
# database name
$db = “master:”
# source path
$sourcePath = “/sitecore/content/Generic Content/Generic Pages/Basic Generic Item”
# destination path – task was to move the generic pages from generic location to country based locations
$destinationPath = “/sitecore/content/USA/Generic Content/Generic Pages/Basic Generic Item”
$itemsList = Get-ChildItem -recurse -Path ($db + $sourcePath) | Where { $_.TemplateName -eq “Generic Pages” }
$itemsList | ForEach-Object {
# task was to append parent name to the new item
$newName = $_.Name + “-” + $_.Parent.Name
if(![string]::IsNullOrEmpty($newName)){
Move-Item -Path $_.ProviderPath -Destination ($db + $destinationPath + “/” + $newName)
Write-Host “Moved Item: ” $newName ” to path: ” ($db + $destinationPath)
}else{
Write-Host “Could not move Item: ” $newName
}
}