2017-03-01 171 views
0

我想比较具有相同名称但在同一目录中具有不同扩展名的文件。使用Powershell比较具有不同扩展名的文件名

示例:一个位置有6个文件。

1234.pdf

1234.xml

abcd.pdf

abcd.xml

5678.pdf

efgh.xml

我想比较所有带有.xml/.pdf扩展名的.pdf/.xml文件一个相同的名称,并找出是否缺少任何.pdf或.xml文件,就像上面的示例中缺少5678.xml文件并缺少efgh.pdf文件。

我试图复制文本文件中的所有.pdf文件和另一个文本文件中的所有.xml文件,并尝试比较其中的字符串,但它不起作用。

任何人都可以请让我知道如何比较文件名与不同的扩展名?

回答

1
Push-Location "\\Cifintgfsfs001\gfs\MXPDFXML\Data\Test" 
Get-childitem *.xml | ForEach { 
    if (!(test-path "$($_.BaseName).pdf")){ 
    "$($_.BaseName).pdf missing" 
    } 
} 
Get-childitem *.pdf | ForEach { 
    if (!(test-path "$($_.BaseName).xml")){ 
    "$($_.BaseName).xml missing" 
    } 
} 
Pop-Location 
+0

我试过了你提供的代码,但它只是列出了所有带有后缀“missing”的文件名。 代码: Get-childitem -Path“\\ Cifintgfsfs001 \ gfs \ MXPDFXML \ Data \ Test”*。xml | ForEach if(!(test-path“$($ _。BaseName).pdf”)){ “$($ _。BaseName).pdf missing” } } Get-childitem -Path“\\ Cifintgfsfs001 \ gfs \ MXPDFXML \ Data \ Test“* .pdf | {的ForEach如果 ((测试路径 “$($ _基础名称)的.xml”)。!){ “$($ _基础名称。).XML失踪” }} 输出: abcd.pdf失踪 1234.pdf失踪 abcd.xml失踪 1234.xml失踪 6789.xml失踪 –

+0

在上面的例子中只有“6789.pdf”失踪本来应该是输出,因为其余的所有文件都有相应的.pdf或.xml文件。 你能指导我吗? –

+0

该代码假定当前文件夹中的文件。我会看看你的代码。 – LotPings