Powershell脚本,用于打印文件夹中每个文件的文件路径

时间:2016-11-11 04:30:39

标签: powershell scripting

我有2个文件夹:'Old'和'New'。 “旧”中的大多数文件都已复制到“新建”。但是,'Old'和'New'中子文件夹的结构是不同的。因此'Old'中文件的文件路径与'New'中的文件路径非常不同。

我需要遍历'Old'中的每个文件,在'New'中搜索该文件,并将每个文件的旧文件路径和新文件路径写入文本文件。

我已被指派手动执行此操作,但由于文件数量需要很长时间。所以我想写一个脚本。我是Powershell的新手,我很难搞清楚哪些cmdlet可以帮助我完成任务。

我将感谢任何指导。谢谢。

1 个答案:

答案 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