当前位置: 首页> 校园网> 正文

系统小技巧:用活PowerShell 批量查找更快捷

在日常工作中,我们经常要在很多文件中查找指定的关键字,虽然借助Windows 10自带的搜索功能也可以在文档中找到指定的关键字(需要在高级选项中勾选“文件内容”),但系统自带的搜索功能不仅速度慢,而且无法对找到的关键字进行高亮标注,这样还需根据搜索结果打开文档进行手动查找,如果借助PowerShell命令制作搜索脚本,则可以很好地解决系统搜索功能不足的问题。

系统小技巧:用活PowerShell 批量查找更快捷

1. 就地取材  自制脚本查找关键字

笔者的QQ接收文件夹收到很多同事发来的工作文件(均为TXT格式的纯文本文件),现在需要在其中找出包含“2021订货信息”文本的文件。由于这些文件使用多种编码格式(ANSI、Unicode都有),为了避免在PowerShell中显示为乱码,需要先将PowerShell的编码格式设置为“Unicode UTF-8”。

展开控制面板的“时钟和区域→区域”,点击“更改日期、时间或数字格式”。在打开的窗口中切换到“管理”选项卡,点击“非Unicode程序的语言”下的“更改系统区域设置”,在打开的窗口中勾选“Beta版: 使用Unicode UTF-8提供全球语言支持(U)”,最后依次点击两次“确定”退出(图1)。

2106A-PWSH-1

启动PowerShell后输入“CD E:\qq123456\FileRecv”并回车(输入每条命令后均需按下回车键确认,下同),进入QQ账号(123456)文件接收目录。接着再输入“Select-String (Get-ChildItem | ?{$_.name -like "*.txt"}) -pattern "$(Read-Host)"”,表示在接收目录中遍历其中的TXT文件。最后再输入需要查找的关键字,如“2021订货信息”。

这样在PowerShell窗口中就会显示所有包含上述关键字的TXT文件,并提示关键字所在的行位置。比如“17-hdz-xyxxr(1).txt:9:2021订货信息 广州2021.02.23”,表示需要查询的关键字在“17-hdz-xyxxr(1).txt”文件中第9行的位置(图2)。

2106A-PWSH-2

现在按照上述提示,使用记事本程序打开“E:\qq123456\FileRecv\17-hdz-xyxxr(1).txt”,依次点击菜单栏中的“格式→去除自动换行前的勾选”,继续点击“查看→勾选状态栏”,现在就可以在记事本窗口下方的状态栏中看到显示的行号,按提示定位到第9行,即可看到查找的关键字了(图3)。

2106A-PWSH-3

小提示:

利用上述命令,我们可以在指定的目录中快速找到所有包含关键字的文件,使用同样的方法可以查找日志文件(将*.txt更换为*.log即可)中的信息,比如可以使用“QQ”作为关键字,在审核日志中快速找到所有的QQ审核事件。

2. 借助外力  使用开发脚本查找关键字

上述方法虽然简单,但由于很多朋友并不熟悉PowerShell的语法,因此对于一些更为复杂的查找,我们还可以直接使用现成的脚本。比如某电商将所有客户的发货信息均保存在“E:\发货”下不同的.xlsx文件中并授权给特定的人员使用,现在需要在其中找到客户名为“张三”的所有发货信息。

首先以管理员身份启动PowerShell,输入并执行“set-executionpolicy remotesigned”命令,当屏幕出现选择提示时,输入“a”(表示确认安装所有脚本)确认(图4)。

2106A-PWSH-4

接着在上述窗口中再输入并执行“Install-Module -Name ImportExcel”命令,此时Windows的安全中心会弹出拦截通知消息,按提示点击消息,在打开的“保护历史记录”窗口中,依次点击“操作→允许在设备上”,允许安装脚本(图5)。

2106A-PWSH-5

然后返回到PowerShell窗口,在屏幕提示是否安装时输入“Y”确认安装,这样可以将所需的脚本安装到本机的默认目录中(图6)。完成脚本的安装后到“https://share.weiyun.com/EkERDO8t”下载查询脚本“1.psl”并放置在桌面上,使用记事本打开后全选其中的内容,然后将其粘贴到PowerShell的窗口中并回车运行。

2106A-PWSH-6

最后再输入查询命令“get-deliveryinfo -user "张三" | ft”,回车后就可以在窗口中显示查询结果。上述命令会在指定目录(即“E:\发货”,如果需要查询其他目录或文件类型,如xls,请自行更改“1.psl”中相应的代码)下遍历所有的xlsx文件,并将符合要求的结果显示在屏幕上,我们可以直接复制查询结果(图7)。

2106A-PWSH-7

小提示:

因为脚本服务器联机下载的速度较慢,如果在PowerShell窗口一直无法完成脚本的下载,大家还可以直接到“https://www.powershellgallery.com/packages/ImportExcel”,离线下载所需的脚本文件。下载到的是一个.nupkg文件,可以使用7-Zip打开,并将其解压到“C:\Program Files\WindowsPowerShell\Modules”完成手动安装。


原文链接

https://www.cfan.com.cn/2022/0831/136888.shtml