最近一次偶然的机会让我接触到了PowerShell,给我的感触很深,所以希望跟大家分享一下。先谈一下事情经过吧,我为什么会接触到PowerShell呢。一周以前,我所在的项目经历了一个月版上线。上线之后出了点问题,我和项目经理在生产机房操作间解决问题时,碰到了这样一个问题,我们系统通过数据仓库取了其他系统的数据一些表使用,每天每张表数据导入时都会生成相应的日志文件记录导入的数量。当我想查看所有日志文件中对应表导入数量的时候,我采取的做法是一个一个文件依次打开的方式。这时项目经理提到,要是有Linux环境就好了,我们可以将这批文件放在服务器上,通过grep命令快速筛选我们想要的内容。我说确实是啊,但是我们现在没有这个环境也没办法。此时项目经理告诉我,或许可以尝试使用Windows系统的PowerShell功能帮助我们。起初听到这个词的时候,我能大概猜到是一个命令行有关的东西。项目经理说它能在Windows下实现Linux grep命令的功能,随后他百度了具体用法后,果不其然地帮助我解决了问题。不得不说,项目经理是一个命令行达人。
说下我们当时的场景吧。当时我手里边有几十个日志文件,每个日志文件中都有相同的关键字——“Rows are loaded.“用来显示没张表被导入的数据量。我希望统计出所有表被导入的数据量,最开始我使用的方式是一个一个文件打开找出里面被导入数据量的地方记录在另一个文件中。显然,这样做是很耗时的,效率低不说,而且可能出错。现在说一下后面我是如何使用PowerShell高效地达到这一目的的。因为现在没有当时的那批日志文件,所以以ok文件(也是文本文件)示例。现在我的桌面有一个data的文件夹,里面放了以很多日期命名的子文件下,子文件下有一批.data和.ok文件。.dat文件是数据文件,.ok文件是数据文件对应的记录文件,存有数据量信息。如下图所示:
ok文件内容格式如下:路径名|记录数
现在我希望提取出该文件夹下所有ok文件中的这个记录数输出到一个文件中,可以采用以下办法。
Windows下有个PowerShell命令行,无需安装,直接内置系统当中。我们可以通过cmd进入PowerShell,如下图:
然后我们可以使用cd命令进入到相应的文件目录下:
接下来就是问题的关键了,我们知道Linux下有个grep命令,然而PowerShell下也有个类似的命令Select-String,最简单的用法是Select-String "匹配的内容" *.文件后缀 > 自定义文件名.自定义文件后缀,如我们需要提取每个ok文件内容中的记录数这一行(当然,这里只有一行,然后很多场景下内容不只一行),可以使用:Select-String ".dat" *.ok > ok.log,“>”和Linux系统中一样,表示重定向,这里是把提取的内容全部输出到一个ok.log文件当中,这里会自己帮我们创建该文件。
接下来我们在PowerShell里面输入该命令,然后回车:
虽然没有任何提示,但我们可以去文件目录下看一下,发现生成了一个ok.log文件,打开文件,查看内容如下:
可以看到,很轻易地就实现了我想要的功能,将所有文件中的关键内容提取到一个文件当中,而不用我们一个一个文件打开然后拷贝到统一的地方。
我们时常会碰到这种问题,一堆文件的格式一样,只是里面的内容不一样。当我们需要提取其中的内容时,我们没必要依次打开所有文件去找出里面的部分内容。使用PowerShell可以很简单地解决这个问题,是不是极大地提高了生产力呢。当然,PowerShell下还有很多方便的功能,这就需要自己去学习和探索了。
相关推荐
卸载以前版本的 Windows PowerShell 和 Windows 远程管理是指在安装 Windows Management Framework(包括 Windows PowerShell 2.0 和 WinRM 2.0)前,需要卸载 Windows PowerShell 和 Windows 远程管理 (WinRM) 的较...
Windows PowerShell是微软为Windows操作系统开发的一个强大的命令行脚本环境,它在Windows系统管理中扮演着重要的角色。PowerShell v1.0是该工具的早期版本,发布于2006年,它提供了比传统的CMD命令行更加强大、灵活...
Microsoft Windows PowerShell 是一种新的命令行外壳和脚本语言,用于进行系统治理和自动化。Windows PowerShell 建立在 .NET Framework 的基础上,IT 专业人员可通过命令或脚本来治理计算机,从而通过系统自动化来...
Windows PowerShell 1.0 是微软推出的一个强大的命令行脚本环境,主要针对系统管理员和开发者设计,用于管理和自动化Windows操作系统。在本案例中,我们关注的是"Windows PowerShell 1.0 xp x86(32位) KB926139 ENU...
### Windows PowerShell 入门知识点详解 #### Windows PowerShell 设计理念及功能 - **设计初衷**:Windows PowerShell 被设计成一种新型的 Windows 命令行外壳程序,旨在为系统管理员提供强大的命令行和脚本环境...
**Windows PowerShell 1.0** 是微软为Windows操作系统推出的一个强大的命令行脚本环境,它在管理和自动化任务方面提供了极大的便利。在安装SQL Server 2008时,Windows PowerShell 1.0作为一项先决条件,是确保SQL ...
《Windows PowerShell实战指南》第二版是一本专注于提升用户在Windows操作系统环境下使用PowerShell进行系统管理和自动化操作的权威书籍。PowerShell是微软推出的一种命令行脚本环境,它结合了命令行接口和脚本语言...
精心挑选和整理的关于Windows PowerShell的教程 |powershell 技术文档 --|Powershell_技术教程.doc --|PowerShell基础教程 --|WindowsPowerShelluserGuide |powershell 中文教程 --|Windows PowerShell 入门指南...
Windows PowerShell实战指南 第2版,完整中文版,包含书签
### Windows PowerShell Step by Step (第三版) #### 一、概述 本书《Windows PowerShell Step by Step》(第三版)由微软官方认证专家 Ed Wilson 撰写,是学习 Windows PowerShell 的权威指南。本书全面覆盖了 ...
**Windows PowerShell** Windows PowerShell是微软开发的一个强大命令行接口和脚本环境,它极大地扩展了传统的命令提示符(CMD.exe)的功能。PowerShell基于.NET Framework,允许管理员和开发者使用命令行执行任务...
Windows PowerShell是微软公司推出的一种强大的命令行和脚本语言,它自2006年首次推出以来,已经逐渐取代了老旧的Windows命令提示符(cmd.exe)和批处理文件(.bat或.cmd文件)成为系统管理员和开发者的首选工具。...
PowerShell(包括Windows PowerShell和PowerShell Core)是微软公司开发的任务自动化和配置管理框架。 UNIX系统一直有强大的壳程序(shell),Windows PowerShell的诞生就是要提供功能相当于UNIX系统的命令行壳程序...
标题:"Windows.PowerShell应用手册.pdf" 暗示了文档主要涉及Windows平台下的PowerShell脚本语言的应用。PowerShell是一种面向对象的命令行壳和脚本语言,主要用于系统管理任务和自动化,尤其在处理复杂的、重复性的...
powershell4.0完整升级包(windows powershell升级补丁系统4.0版本) windows08R2 powershell升级到4.0的完整升级包,包含所有需要的依赖包。 注意:只适用于08R2系统; 另外:powershell4.0功能强大 可以批量添加AD域...
Windows PowerShell每周提示
Windows PowerShell 2.0 是微软开发的一个强大的命令行脚本环境,主要针对系统管理员和开发者设计,用于自动化管理和配置Windows操作系统。这个压缩包文件“WindowsXP-KB968930-x86-CHS”是专门为Windows XP系统提供...
Windows PowerShell 6: Essentials for Administration (IT Pro Solutions) by William Stanek English | 6 Apr. 2017 | ASIN: B06VWVJYB2 | 302 Pages | AZW3 | 647.68 KB Covers all release versions of ...
### Windows PowerShell 入门知识点详解 #### Windows PowerShell 设计理念与目标 Windows PowerShell 是微软针对系统管理员需求设计的一款革命性的命令行外壳程序。不同于传统的基于文本的命令行工具,PowerShell...
**Windows PowerShell in Action 第三版** Windows PowerShell 是微软推出的一款强大的命令行脚本环境,用于自动化和管理系统。这本书“Windows PowerShell in Action 第三版”深入浅出地介绍了PowerShell的核心...