【问题标题】:Power shell to loop subfolders according to sequencePowershell根据顺序循环子文件夹
【发布时间】:2012-08-06 03:37:05
【问题描述】:

我想使用 power shell 循环所有子文件夹并运行其中的所有文件。但是,如果我的根目录包含 3 个子文件夹,我想按照以下顺序循环并列出它:子文件夹 C、子文件夹 B 和子文件夹 A,以便文件执行将按照顺序运行( C-->B-- >A)。

下面是我的代码。

Get-ChildItem -path "C:\Root\subfolders\" -recurse -Filter *.sql | foreach-object -process { $_.FullName }|
   ForEach-Object {
        sqlcmd -i $_
    }

【问题讨论】:

    标签: shell powershell


    【解决方案1】:

    试一试,获取 C:\Root\subfolders 的所有文件夹,找到的 foreach 文件夹递归获取其文件:

    Get-ChildItem C:\Root\subfolders | 
    Where-Object {$_.PSIsContainer} | 
    Foreach-Object  {Get-ChildItem $_.FullName -Recurse -Filter *.sql | Foreach-Object {sqlcmd -i $_.FullName} }  
    

    【讨论】:

    • 嗨@Shay Levy,我想按照C中的文件先出现的顺序,然后是B和A的顺序,在所有3个子文件夹A、B和C中获取文件。
    • 那么,如果一个文件夹有 3 个子文件夹(a、b 和 c),您希望文件以相反的顺序(c、b 和 a)执行吗?什么支配顺序? a、b 和 c 是真实的文件夹名称吗?
    • 这行得通吗? Get-ChildItem C:\Root\subfolders | Where-Object {$_.PSIsContainer} | Foreach-Object {Get-ChildItem $_.FullName -Recurse -Filter *.sql |排序对象目录名称 -Desc | Foreach 对象 {sqlcmd -i $_.FullName} }
    • 嗨,Shay,太糟糕了,文件夹的名称没有按字母顺序命名。有什么解决方案吗?例如:文件夹名称 = 目录、表格、数据,我想先循环表格中的文件。谢谢
    • 这真的取决于,你必须有一些逻辑可以用来确定顺序(文件名、路径、计算它的表达式等)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多