首页 > 系统相关 >PowerShell命令,找到项目里行数最多的scala文件

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

时间:2023-05-26 19:14:41浏览次数:34  
标签:脚本 Get scala Windows 里行 Object WSL PowerShell

代码

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需要手动启用。

PowerShell编程的实用tips

了解基础语法: 首先,需要了解PowerShell的基本语法和结构。例如,理解如何创建变量、如何使用if/else结构、如何编写函数等。

使用管道: PowerShell的管道功能非常强大,它可以让你把一个命令的输出作为下一个命令的输入。这在处理复杂的数据转换或过滤任务时非常有用。

充分利用别名: PowerShell有很多内建的别名可以让你更快地执行命令。比如,你可以用 dir 代替 Get-ChildItem,用 ls 代替 Get-Content。你也可以自定义别名以符合你的习惯。

理解对象: PowerShell是基于对象的,这意味着每个命令的输出都是一个或多个对象。理解这个可以帮助你更好地利用管道,以及更有效地处理输出。

使用命令提示符: PowerShell提供了一种称为命令提示符的功能,可以帮助你更方便地找到和执行命令。只需要输入一个命令的一部分,然后按Tab键,PowerShell就会自动完成命令。

学习如何编写脚本: PowerShell脚本可以让你自动化很多任务。学习如何编写和使用脚本可以极大提高你的效率。

理解错误处理: PowerShell有很多内建的错误处理功能。理解这些功能可以帮助你编写更健壮的脚本,更好地处理可能出现的问题。

使用PowerShell ISE或VS Code: 这些工具提供了一些强大的功能,如语法高亮、命令提示、脚本调试等,可以大大提高你编写和调试脚本的效率。

查阅文档: 当你遇到问题或不清楚某个命令如何使用时,查阅官方文档或使用 Get-Help 命令是很好的选择。

与社区交流: PowerShell有一个活跃的社区,你可以在这里找到很多资源,比如教程、脚本样本、问题解答等。

标签:脚本,Get,scala,Windows,里行,Object,WSL,PowerShell
From: https://www.cnblogs.com/yhm138/p/17435587.html

相关文章

  • 批量服务器更新DNS的powershell脚本
    在之前的博文https://blog.51cto.com/magic3/2514240中写过一个类似的脚本,但脚本并不完美。近期又有类似的需求,懒得改了,直接写个新的。针对hyper-v的多网卡,虚拟网卡,同样有效。$nic_array=@{}$nic_info=Get-NetAdapter$nic_name=$nic_info.nameforeach($nicin$nic......
  • 在本地运行spark程序,出现Scala module 2.13.4 requires Jackson Databind version >=
    这是jackson多版本题,我们需要屏蔽所有hadoop组件中的Jackson,在pom.xml文件里修改:添加<exclusions><exclusion><groupId>com.fasterxml.jackson.module</groupId><artifactId>*</artifactId></exclusion><exclusion>......
  • powershell脚本实现以指定的账户运行程序
    $uname="cnvwfs02\dkx4pxk"#指定用户名$pwd=ConvertTo-SecureString"Beijing2023!"-AsPlainText-Force#password”指定用户的密码$cred=New-ObjectSystem.Management.Automation.PSCredential($uname,$pwd)#将用户和密码保存在这个变量中Start-Process-FilePath......
  • PowerShell系列(二):PowerShell和Python之间的差异介绍
    今天给大家聊聊PowerShell和Python之间有哪些共同之处,各自有哪些优势,希望对运维的朋友了解两种语言能提供一些有用的信息。1、  Python定义Python是一种面向对象的解释型计算机程序设计语言,由荷兰人GuidovanRossum于1989年发明,第一个公开发行版发行于1991年。Python是纯粹的自......
  • HTB ACADEMY-Linux Privilege Escalation WRITE UP
    WehavebeencontractedtoperformasecurityhardeningassessmentagainstoneoftheINLANEFREIGHTorganizations'public-facingwebservers.Theclienthasprovideduswithalowprivilegedusertoassessthesecurityoftheserver.ConnectviaSSH......
  • Scala:一门灵活多态的编程语言
    基本语法和数据类型Scala的语法有很多共性与Java,它们都是基于C语言的语法规则。Scala中的数据类型也与Java类似,包括整数、浮点数、布尔值和字符串。你可以像Java一样声明和使用这些数据类型。与Java不同的是,Scala中的数值类型默认是基于对象的,因此你可以像调用对象方法一样调用数值......
  • Scala初学者指南
    本文已收录至Github,推荐阅读......
  • PowerShell-将word另存为pdf
    $folderPath="D:\工作\temp\2023年4月19日"$folderPathOut="D:\工作\temp\2023年4月19日"$wordFiles=Get-ChildItem-Path$folderPath-Filter"*.docx"try{Get-Process-Name"*word*"|Stop-Process#避免之前运行失败的......
  • 八、部署scala
    服务和组件Scala2.11.8解压:tar-zxvfscala-2.11.8.tgz重命名:mv/usr/local/src/scala-2.11.8//usr/local/src/scala分发:scp-r/usr/local/src/scala/slave1:/usr/local/src/scp-r/usr/local/src/scala/slave2:/usr/local/src/配置环境变量:vi/etc/profileexpor......
  • PowerShell里cd文件夹报错,是因为文件名称中包含空格
    PowerShell里cd文件夹报错,是因为文件名称中包含空格。需要将文件包在引号中。 cd"C:\ProgramFiles"  ......