代码之家  ›  专栏  ›  技术社区  ›  Govind Parmar

在PowerShell中对目录树中的每个项运行artbitrary命令?

  •  1
  • Govind Parmar  · 技术社区  · 11 月前

    在命令提示符下,我可以枚举目录树中的所有文件,并使用以下任一项对所有文件运行任意命令:

    FOR /R %F IN (*) DO @COMMAND-HERE ARGS-HERE
    

    仅限目录:

    FOR /R /D %D IN (*) DO @COMMAND-HERE ARGS-HERE
    

    PowerShell上的等效命令是什么?

    2 回复  |  直到 11 月前
        1
  •  2
  •   Anthony    11 月前

    要迭代文件夹中的所有项并对其执行操作,可以递归地迭代它们,使用管道可以对该项执行操作

    Get-ChildItem -Path . -Recurse | ForEach-Object { # Your command here, $_ represents each file }
    

    我相信你可以把它用于目录。

    Get-ChildItem -Path . -Recurse -Directory | ForEach-Object {...}
    

    希望能有所帮助。

        2
  •  2
  •   lit    11 月前

    我可能遗漏了你问题中的一些要点,但是。。。

    所有项目:

    Get-ChildItem -Recurse | ForEach-Object { acommand $_.FullName }
    

    仅限文件:

    Get-ChildItem -Recurse -File | ForEach-Object { acommand $_.FullName }
    

    仅限目录:

    Get-ChildItem -Recurse -Directory | ForEach-Object { acommand $_.FullName }
    

    这是针对PowerShell Core的。6.0+请访问github.com/PowerShell/PowerShell获取

    推荐文章