【问题标题】:How to run dos2unix for all files in a directory and subdirecty in Powershell如何为Powershell中目录和子目录中的所有文件运行dos2unix
【发布时间】:2014-10-31 13:53:12
【问题描述】:

我可以在 PowerShell 中的一个文件上运行 dos2unix

dos2unix ./assets/style.css

如何对./assets/ 及其子目录下的所有 CSS 文件执行此操作?

【问题讨论】:

    标签: powershell


    【解决方案1】:
    '.\assets' | Get-ChildItem -Recurse -File -Filter '*.css' | ForEach-Object {
        dos2unix $_.FullName
    }
    

    说明

    Get-ChildItem 类似于dirls(在powershell 中,后两者是该cmdlet 的别名)。 -File 表示只返回文件。 -Recurse 表示递归子目录。 -Filter 允许我们只获取所需的文件模式。

    然后我们通过管道将其导入ForEach-Object 以执行一个脚本块为每个返回的文件,在那里,我们只需执行 dos2unix 命令。

    FullName 是文件对象的属性,包含文件的完整路径。

    【讨论】:

    • 对管道 WRT '.\assets' 的好奇使用。为什么不只是Get-ChildItem Assets -Recure -Filter *.css | Foreach {dos2unix $_.FullName}?请注意,您不需要引用*.css。此外,使用 -File 仅适用于 PowerShell v3 及更高版本。
    • 我更喜欢这种风格。所以我倾向于尽可能做$path | Join-Path -Child Path 'whatever'之类的事情。我只是喜欢管道!关于-File的好点。
    • 你能告诉我如何安静地运行它,让它不打印输出吗?
    • 尝试通过管道将其发送到Out-Null。我现在在手机上,所以我不能发布一个合适的例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-04
    • 1970-01-01
    相关资源
    最近更新 更多