Powershell脚本扫描目录并返回分隔文件信息和超链接

时间:2018-02-24 14:49:02

标签: powershell

关于我的意图的一点背景:

第一个函数Ge​​tFileNames的目的是读取包含许多工具的数字信息的主文件夹中的目录,并返回带有BaseName的文件列表。

第二个函数SplitFileNames获取GetFileNames的输出,并使用下划线作为分隔符将名称拆分为3个部分。这些文件的名称都是这样构建的; SITECODE_FACNUM_FILETYPE,例如,DKFX_00099_MAP。 3个部分中的每一个都形成单独的列,然后我将其导入Access中的数据库。

另外,在此之前我从未使用过Powershell,到目前为止我的经验基本上是逆向工程和拼接代码的组合,很明显是我自己写的一些代码。

我的问题/尊重的要求是:

  1. 我几乎肯定必须有一个更好的方法去做我想要完成的事情,并且我对我所经历的信息没有足够的理解它发生了。因此,我绝对会欣赏任何有待改进的建议。

  2. 我还需要FullName中包含的超链接信息作为列,但遗憾的是我永远无法正常工作,因为我必须将BaseName分成3个部分。

  3. 谢谢!

    df<-mutate(data.frame(df1), 
        V14=factor(paste0(Var1, Var2, Var3, Var4, "___")),
        V57=factor(paste0("___", Var5, Var6, Var7)))
    
    ggplot(df) +
        geom_density(aes(x=data)) +
        facet_grid(V14~V57, switch="y") +
        scale_x_continuous(breaks=c(0,1)) +
        theme(
            axis.text.y=element_blank(),
            axis.ticks.y=element_blank()
        ) +
        xlab("data") + ylab("")
    

1 个答案:

答案 0 :(得分:1)

您可能需要一些时间来学习Powershell的基础知识。逆向工程可能不是最好的老师。 ;-)从这样的事情开始:

$Path = 'Enter your path here'
Get-ChildItem -Path $Path -Recurse -File | 
    ForEach-Object{
        $One,$Two,$Three = $_.BaseName -split '_' 
        [PSCustomObject][ordered]@{
            SiteCode = $One
            FacNum = $Two
            FileType = $Three
            BaseName = $_.BaseName
            Hyperlink = $_.FullName
        }
    }