We suggest you use "Save as Template" feature to meet your needs.
1.Go to List settings of the source site >> Save list as template

2.On the Save as Template page, please select "Include Content" option.

3.Go to Site settings of the source site >> List templates, you will see the list template you just created.

4.If you want create list in same site, please following steps:
- a.Go to Site Content >> add an app >> find and click the list template and create new list

- b.Go to the new list, you will find all items are copied to the new list.

5.If you want create list in another site, please following steps:
- a.Download the template of the source site

- b.Upload the template on the destination site

- c.Go to Site Content of the destination site >> add an app >> find and click the list template and create new list

- d.Go to the new list, you will find all items are copied to the new list.

========================= Updated Answer =======================
1.Both lists should have same columns

2.Please run the below PowerShell script as an admin
Add-PSSnapin Microsoft.Sharepoint.Powershell
#Configuration variables
$WebURL = "http://sp/sites/sitename/"
$SourceListName = "listnameA"
$TargetListName= "listnameB"
#Get Objects
$web = Get-SPWeb $WebURL
$SourceList = $web.Lists[$SourceListName]
$TargetList = $web.Lists[$TargetListName]
#Get all source items
$SourceColumns = $sourceList.Fields
$SourceItems = $SourceList.GetItems();
#Iterate through each item and add to target list
Foreach($SourceItem in $SourceItems)
{
$TargetItem = $TargetList.AddItem()
Foreach($column in $SourceColumns)
{
if($column.ReadOnlyField -eq $False -and $column.InternalName -ne "Attachments")
{
$TargetItem[$($column.InternalName)] = $sourceItem[$($column.InternalName)];
}
}
$TargetItem.Update();
}
