我有2个文件夹:'Old'和'New'。 “旧”中的大多数文件都已复制到“新建”。但是,'Old'和'New'中子文件夹的结构是不同的。因此'Old'中文件的文件路径与'New'中的文件路径非常不同。
我需要遍历'Old'中的每个文件,在'New'中搜索该文件,并将每个文件的旧文件路径和新文件路径写入文本文件。
我已被指派手动执行此操作,但由于文件数量需要很长时间。所以我想写一个脚本。我是Powershell的新手,我很难搞清楚哪些cmdlet可以帮助我完成任务。
我将感谢任何指导。谢谢。
答案 0 :(得分:0)
尝试类似这样的事情
#list old files
$patholdfile="c:\temp"
$listoldfile=Get-ChildItem $patholdfile -File -Recurse | select Name, FullName
#list new files
$pathnewfile="c:\temp2"
$listnewfile=Get-ChildItem $pathnewfile -File -Recurse | select Name, FullName
#extract liste file old and name and search all file in newlist
$resultsearch=@()
foreach ($currentfile in $listoldfile)
{
$resultsearch+=New-Object psobject -Property @{
Name=$currentfile.Name
OldPath=$currentfile.FullName
#if you want the firt founded uncomment this and comment after
#NewPaths=($listnewfile | Where {$_.Name -eq $currentfile.Name} | select FullName -First 1).FullName
NewPaths=($listnewfile | Where {$_.Name -eq $currentfile.Name} | select FullName).FullName -join "~"
}
}
#export result in csv file
$resultsearch | select name, OldPath , NewPaths | export-csv -Path "c:\temp\result.txt" -NoTypeInformation