0
我试图将多个文件针对单个文件进行比较。我已经设法使那部分工作,但是我的问题是,我想能够在比较运行之前检查文件是否存在。PowerShell的 - 比较多个文件对单一的CSV文件
即检查是否文件A存在,如果是这样比较针对主csv文件,如果不继续,并检查文件b存在,如果是这样比较针对主CSV等。
我的剧本至今老话:
$files = get-content -path "H:\Compare\File Location\servername Files.txt"
$prod = "H:\compare\Results\master_SystemInfo.csv"
foreach ($file in $files) {
If((Test-Path -path $file))
{
Write-Host "File exists, comparing against production"
$content1 = Get-Content "H:\Compare\Results\$file"
$content2 = Get-Content $prod
$comparedLines = Compare-Object $content1 $content2 -IncludeEqual |
Sort-Object { $_.InputObject.ReadCount }
$lineNumber = 0
$comparedLines | foreach {
$pattern = ".*"
if($_.SideIndicator -eq "==" -or $_.SideIndicator -eq "=>")
{
$lineNumber = $_.InputObject.ReadCount
}
if($_.InputObject -match $pattern)
{
if($_.SideIndicator -ne "==")
{
if($_.SideIndicator -eq "=>")
{
$lineOperation = "prod"
}
elseif($_.SideIndicator -eq "<=")
{
$lineOperation = "test"
}
[PSCustomObject] @{
Line = $lineNumber
File = $lineOperation
Text = $_.InputObject
}
}
}
} | Export-Csv "h:\compare\Comparison Reports\Prod.vs.$file" - NoTypeInformation
}
Else
{ "File does not exist, aborting" ; return}
}
的比较工作只需要运行比较,因为它仍然是随地吐痰结果不存在的文件之前添加的检查文件。
非常感谢你,
看起来你已经检查文件是否存在使用'试验Path'。问题可能是您将'$ files'传递给'Test-Path'而不是'$ file'。 – ama1111
谢谢@ ama1111但现在脚本停止。我删除了;从“Else”区域返回,但现在不进行比较? – dragonhsv
输出是什么?单个“文件不存在,正在中止”? – ama1111