首页 > 解决方案 > Powershell 结合了多个字符串操作

问题描述

因此,我试图将文件夹名称及其在所述文件夹下的所有文件放入 1 个字符串中,然后进行一些字符串操作以删除我不想要的所有位和片段。名为 RemoveMe 的文件,文件扩展名,_Config。我想要的只是数字,文件夹中的前导 0 和要从文件中删除的前导 0

到目前为止,我正在工作并且正在做我想做的事情,但是它非常非常混乱,并且想知道是否至少有一种方法可以组合和整理我正在做的一些字符串操作?

像这样的文件结构

C:\SomeFile\
|Folder001
    | File001_Config
    | File002_Config
    | File003_Config
    | RemoveMe
|Folder002
    | File004_Config
    | File005_Config
    | File006_Config
    | RemoveMe
|Folder003
    | File010_Config
    | File020_Config
    | File030_Config
    | RemoveMe

当前代码

$Files = "C:\SomeFile\"

$Directories = @( (Get-ChildItem -Recurse -Directory $Files).Name)


foreach($Directories in $Directories){
    $Item = @( (Get-ChildItem -Recurse $Files$Directories).Name)
    $CSVInfo = $Directories + "," + $Item
    $CSVInfo = $CSVInfo.Replace(".txt","")
    $CSVInfo = $CSVInfo.Replace("RemoveMe","")
    $CSVInfo = $CSVInfo.Replace("Folder","")
    $CSVInfo = $CSVInfo.Replace("File","")
    $CSVInfo = $CSVInfo.Replace("_Config","")
    $CSVInfo = $CSVInfo.Replace(" 0"," ")
    $CSVInfo = $CSVInfo.Replace(" 0","")

    $CSVInfo | Out-File C:\SomeFile\Output.csv -Append

}

我知道这可能不是最好的方法,方法是将所有这些放入每个文件夹的 1 个字符串中,然后将其导出到 CSV 并附加到以下每个文件夹,但它可以工作,而且它只是一个快速的临时解决方案。

标签: powershell

解决方案


推荐阅读