2017-03-01 179 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