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

时间:2019-09-11 02:29:03

标签: powershell

我有一些文件夹,该文件夹的总数总是不同的。每个文件夹都有两个名为“ ID”和“ ID_DONE”的文件,用于由其他进程生成的文件“ ID_DONE”。一旦每个文件夹生成“ ID_DONE”,我想删除文件“ 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..........."
}

2 个答案:

答案 0 :(得分:2)

鉴于您要在多个目录中匹配文件 并使用通配符表达式"$OpJob_Path\*\ID_DON"$Path_ID_DON可能包含文件的数组({ {1}}个项目。

因此

[System.IO.FileSystem]

得出$Split = Split-Path -Path $Path_ID_DON ,其中包含存储在$Split中的文件的父目录路径数组

如果要从所有这些目录中删除名为$Path_ID_DON的文件(如果存在),请使用以下命令:

ID

$Split | ForEach-Object { $file = Join-Path $_ 'ID' if (Test-Path $file) { Remove-Item $file -WhatIf } } 预览操作。确定您将执行所需操作后,将其删除。

答案 1 :(得分:0)

像这样吗?

library(dplyr)

street <- c("1234 Main St","5678 Park Pl Detroit MI 55555")
citystate <- c("Buffalo NY 14210", "Detroit MI 55555")
data <- tibble(street, citystate)

for(i in 1:length(data$street)){
  data$street[i] <- gsub(data$citystate[i], '', data$street[i])
}