如何使用powershell查找文件并获取路径?

如何使用powershell查找文件并获取路径?,powershell,Powershell,我有一些文件夹,总的文件夹是不同的。每个文件夹有两个名为“ID”和“ID_DONE”的文件,用于其他进程生成的文件“ID_DONE”。我想删除文件“ID”一旦“ID_完成”生成到每个文件夹。 我尝试过这个,但是如果我有多个文件夹要检查,我无法删除“ID”文件。 任何人都可以帮忙 if(Test-Path -Path "$OpJob_Path\*\ID_DON"){ $Path_ID_DON = Get-ChildItem -Path "$OpJob_Path\*\ID_DON" $Split =

我有一些文件夹,总的文件夹是不同的。每个文件夹有两个名为“ID”和“ID_DONE”的文件,用于其他进程生成的文件“ID_DONE”。我想删除文件“ID”一旦“ID_完成”生成到每个文件夹。 我尝试过这个,但是如果我有多个文件夹要检查,我无法删除“ID”文件。 任何人都可以帮忙

if(Test-Path -Path "$OpJob_Path\*\ID_DON"){
$Path_ID_DON = Get-ChildItem -Path "$OpJob_Path\*\ID_DON"
$Split = Split-Path -Path $Path_ID_DON
$Split
    if(Test-Path -Path "$Split\ID")
    {
        Write-Host "Remove"
        Remove-Item -Path "$Split\ID"

    }
    else{
        Write-Host "Not Found"
    }
}
else{
    Write-Host "Continue..........."
}

如果您使用通配符表达式
“$OpJob\u Path\*\ID\u DON”
跨多个目录匹配文件,
$Path\u ID\u DON
可能包含一个文件数组(
[System.IO.FileSystem]
项)

所以,

$Split = Split-Path -Path $Path_ID_DON
结果是
$Split
包含存储在
$Path\u ID\u DON
中的文件的父目录路径数组

如果要从所有这些目录中删除名为
ID
的文件,请使用以下命令:

$Split | ForEach-Object { 
  $file = Join-Path $_ 'ID'
  if (Test-Path $file) { Remove-Item $file -WhatIf }
}
-WhatIf
预览操作。一旦你确定它能做你想做的事,就把它取下来。

像这样的东西

Get-ChildItem "$OpJob_Path" -File -Filter "ID_DON" -Recurse | %{Remove-Item "$($_.DirectoryName)\ID" -ErrorAction SilentlyContinue}

很高兴听到这个消息,@SBR。