PowerShell命令,找到项目里行数最多的scala文件

发布时间 2023-05-26 19:01:11作者: yhm138

代码

Get-ChildItem -Recurse -Filter *.scala | ForEach-Object { $_ | Add-Member -NotePropertyName 'Lines' -NotePropertyValue (Get-Content $_.FullName | Measure-Object -Line).Lines -PassThru } | Sort-Object Lines -Descending | Select-Object -First 5
这个命令的工作原理是:

Get-ChildItem -Recurse -Filter *.scala 在当前目录及其子目录下查找所有的 .scala 文件。

ForEach-Object { $_ | Add-Member -NotePropertyName 'Lines' -NotePropertyValue (Get-Content $_.FullName | Measure-Object -Line).Lines -PassThru } 对每个找到的文件计算行数,并添加到每个文件对象的 'Lines' 属性中。

Sort-Object Lines -Descending 将结果按照行数进行降序排序。

Select-Object -First 1 选择行数最大的文件。

你可以将这个命令放在 PowerShell 窗口中运行,也可以将它保存为 .ps1 文件,然后在 PowerShell 中运行这个文件。

Windows10系统内有哪些shell?

除了cmd, powershell还有啥?

它们的区别是什么?

Windows 10系统内主要有两种类型的shell:

Command Prompt(cmd):这是Windows系统的原生命令行工具,从DOS时代就开始使用。CMD主要用于执行bat批处理脚本和一些基本的系统命令。它的功能相对简单,并不适合进行复杂的脚本编程。

PowerShell:PowerShell是微软在2006年发布的一个任务自动化和配置管理框架,包含了命令行shell和脚本语言。PowerShell的功能要比CMD强大得多,它基于.NET Framework,可以处理复杂的编程任务和系统管理工作。PowerShell脚本以.ps1为扩展名。

Windows Subsystem for Linux (WSL):这不是一个传统意义上的shell,但它可以让你在Windows 10上运行Linux shell,如Bash、Zsh等。WSL是一个兼容层,可以在Windows 10上运行Linux二进制可执行文件。通过WSL,你可以在Windows环境下使用Linux命令行工具,而无需启动虚拟机或双启动系统。

这三者之间的主要区别在于:

功能性:CMD的功能最基本,主要用于执行一些简单的系统命令。PowerShell则提供了更强大的功能,可以处理复杂的编程和系统管理任务。WSL则提供了完整的Linux环境,可以执行Linux下的所有命令和脚本。

适用场景:CMD更适合于基本的系统管理和文件操作。PowerShell则更适合于需要复杂脚本编程的任务,或者需要与.NET Framework集成的任务。而WSL则适用于需要在Windows环境下使用Linux命令行工具的场景。

兼容性:CMD在所有的Windows系统中都能使用,而PowerShell和WSL需要特定的Windows版本,而且WSL需要手动启用。