Curently only supports public hosted zones, no provision has been made for private hosted zones.
AWS Reference: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-migrating.html
From the AWS CLI list the HostedZone Id and Name for the existing (source) hosted zones:
aws route53 list-hosted-zones --output text --query "HostedZones[].[Id,Name]"
From the AWS CLI for each hosted zone:
aws route53 list-resource-record-sets --hosted-zone-id <hosted-zone-id> > <path-to-output-file>
With all of the output files from above in a folder, run the following from an Administrative PowerShell command prompt:
.\Route53Migration.ps1 -InFolder <source folder> -OutFolder <destination folder>
From the AWS CLI for each hosted zone:
aws route53 create-hosted-zone --name <domain name> --caller-reference "%time%"
From the AWS CLI list the HostedZone Id and Name of the newly created (destination) hosted zones:
aws route53 list-hosted-zones --output text --query "HostedZones[].[Id,Name]"
Using the converted text files from the destination directory to create the ResourceRecordSets. From the AWS CLI for each hosted zone:
aws route53 change-resource-record-sets --hosted-zone-id <new zone id> --change-batch file://domain.com.txt