I had a look, some things to do
Update your CSV file, it should have a number of strings separated by commas.
Like this
"Name","Path"
"VM1","Bldg 178\Bldg 178\VM1"
"VM2","Bldg 178\dir1\VM2"
"VM3","Bldg 178\dir1\VM3"
"-xsapt1n","Bldg 178\dir1\-xsapt1n"
"-xdnsb01","Bldg 178\dir1\-xdnsb01"
"-xsapsbxdm","Bldg 178\dir1\-xsapsbxdm"
"-x-yb02","Bldg 178\dir1\-x-yb02"
"-x-yb01","Bldg 178\dir1\-x-yb01"
"-xproxyb01","Bldg 178\dir1\-xproxyb01"
"-xsapT1Ndb","Bldg 178\dir1\-xsapT1Ndb"
"edc-legprx-01","Bldg 178\dir1\edc-legprx-01"
"-xisfa-x","DC2\AD Child Domains\-xisfa-x"
"-xsom-x","DC2\AD Child Domains\-xsom-x"
"-xgsc-x","DC2\AD Child Domains\-xgsc-x"
"-xrcca-x","DC2\AD Child Domains\-xrcca-x"
"-xdof-x","DC2\AD Child Domains\-xdof-x"
"-xsbv-x","DC2\AD Child Domains\-xsbv-x"
"-xtso-x","DC2\AD Child Domains\-xtso-x"
For the script, try like this
$hashTab = @{}
$folder = Get-View -ViewType Folder
$folder += (Get-View -ViewType Datacenter)
$folder | where {'host','vm','datastore' -notcontains $_.Name} | % {
$current = $_
$path = ""
while($current.Parent -ne $null){
$parent = $current
if($parent.Name -ne "vm"){$path = $parent.Name + "\" + $path}
$current = Get-View $current.Parent
}
$hashTab[$path] = $_
}
$VMfolder = Import-Csv "C:\Users\xxxx\xxxx\VM-BR-FolderPath.csv" | Sort-Object -Property Path
foreach($guest in $VMfolder){
$key = $guest.Path.Substring(0, $guest.Path.LastIndexOf("\") + 1)
Move-VM -VM (Get-VM $guest.Name) -Destination (Get-VIObjectByVIView -MORef $hashTab[$key].MoRef) -WhatIf
}