首页 > 系统相关 >(21)Powershell中的通配符

(21)Powershell中的通配符

时间:2024-01-28 16:55:49浏览次数:20  
标签:now 21 通配符 ---- 查找 test ps1 Powershell

(21)Powershell中的通配符

1. 使用通配符进行文件的模糊查找

Powershell 中的通配符可以实现模糊查找, 也就是说可以对一组项(而不是单个项)进行查找。例如,如果想查找 D:\MyPowerShell 目录中所有扩展名为 .ps1 的文件,可以执行以下命令:

PS C:\test> Get-ChildItem C:\test\*.ps1


    目录: C:\test


Mode                 LastWriteTime         Length Name                                                                                               
----                 -------------         ------ ----                                                                                               
-a----          2024/1/9     15:38           1719 getRunuser.ps1                                                                                     
-a----          2024/1/9     15:33           1719 getUser.ps1                                                                                        

在以上语句中,星号 (*) 用作通配符,用于指定 .ps1 文件扩展名之前可以存在任意字符。因为命令中包含文件扩展名,所以该命令返回的所有文件都必须带有该扩展名,但不限文件名。

Powershell 中的大多数 cmdlet 的某些参数都接受通配符。每个 cmdlet 的帮助中都说明了哪些参数允许使用通配符,哪些可以使用通配符。对于接受通配符的参数,它们的用法是不区分大小写的。例如,?n 将返回 An、an、In、in、On、和 on。例如:

PS C:\test> Get-Help Get-Process -Parameter Name

-Name <System.String[]>
    Specifies one or more processes by process name. You can type multiple process names (separated by commas) and use wildcard characters. The param
    eter name (`Name`) is optional.
    
    是否必需?                    False
    位置?                        0
    默认值                None
    是否接受管道输入?            True (ByPropertyName)
    是否接受通配符?              True
    

从上面的语句参数说明中,可知 Get-Process 的-Name 参数可以接受通配符,所以才可以对进程名进行模糊查找。例如:

PS C:\test> Get-Process *system

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName                                                                                
-------  ------    -----      -----     ------     --  -- -----------                                                                                
   8221       0       44        128  17,641.59      4   0 System                                                                                     

通配符在单个参数可以混合使用。例如,要查找 D:\MyPowerShell 目录下所以以字母m到q开头的.ps1 文件,则执行以下命令:

PS C:\test> Get-ChildItem C:\test\[a-q]*.ps1


    目录: C:\test


Mode                 LastWriteTime         Length Name                                                                                               
----                 -------------         ------ ----                                                                                               
-a----          2024/1/9     15:38           1719 getRunuser.ps1                                                                                     
-a----          2024/1/9     15:33           1719 getUser.ps1                                                                                        

以上命令中使用范围通配符 ([m-q]) 来指定文件名应以字母 m 到 q 开头,并以 .ps1 为扩展名的所有文件。


2. 使用通配符对关键字的模糊查找

使用通配符可以对指定的关键字进行模糊查找。例如想查找当前目录(D:\MyPowerShell)中,包含指定关键字 "ERROR" 的所有文本文件(.txt),可以执行以下语句:

PS C:\test> Select-String -Pattern ("service") *.ps1

getRunuser.ps1:15:$uri = "https://dev110798.service-now.com/api/now/table/sys_user?sysparm_query=first_name%3Datcc1&sysparm_fields=first_name%2Cemail
%2Clast_name&sysparm_limit=10"
getRunuser.ps1:38:$uri1 = "https://dev95323.service-now.com/api/now/import/imp_user"
getUser.ps1:15:$uri = "https://dev110798.service-now.com/api/now/table/sys_user?sysparm_query=first_name%3Datcc1&sysparm_fields=first_name%2Cemail%2C
last_name&sysparm_limit=10"
getUser.ps1:38:$uri1 = "https://dev95323.service-now.com/api/now/import/imp_user"

查询的结果的会显示哪些文件包含指定的关键字,并出现在哪一行.

字符串的模糊搜索和查找在分析log 文件时会非常有用。 而 Select-String 可以使不用打开文件就文件中的关键字进行搜索,尤其是当不确定具体路径是,使用该命令会非常方便。


总结

Powershell 中的通配符可以实现文件以及指定关键字的模糊查找, 通配符只是正则表达式的一部分,所以也可以使用正则表达式进行模式匹配以及模糊查找。

标签:now,21,通配符,----,查找,test,ps1,Powershell
From: https://www.cnblogs.com/zhang-snail/p/17993009

相关文章

  • Codeforces Round 921 (Div. 1) 记录(A-D)
    比赛链接:https://codeforces.com/contest/1924官解链接:https://codeforces.com/blog/entry/125137这场整体来说表现还可以,最终performance\(2431\),delta\(+33\)。A.DidWeGetEverythingCovered?还不错的贪心题。进入状态有点慢,写了几个小错误B.SpaceHarbourC.Frac......
  • (20)Powershell中的特殊运算符
    (20)Powershell中的特殊运算符Powershell中除了常见的算术运算符,赋值运算符,比较运算符,位运算符,逻辑运算符,字符串的拆分和合并运算符,转义字符,还有一些特殊的运算符,这些特殊的运算符往往可以解决一些特殊的问题,比如执行运行命令,更改值的数据类型等。1.&(调用运算符)使用&(......
  • [鹤城杯 2021]EasyP
    我来到博客园的第一篇记录题目复现链接:https://www.nssctf.cn/problem/463题目源码:<?phpinclude'utils.php';if(isset($_POST['guess'])){$guess=(string)$_POST['guess'];if($guess===$secret){$message='Congratula......
  • Codeforces Round 921 (Div. 2) 赛后总结
    搜索替换int->longlong是一个好习惯赛后5分钟就改对E题了,好可惜。不过1个小时都没能做出来,也说明自己不太熟练吧线段树善于维护满足区间可加性的一类信息,这与本题中的代价和相契合。特殊之处在于其修改方式。每个区间会在线段树上被划分为\(O(log_{2}n)\)个小区间即使是最......
  • 2024/1/21-2024/1/28
    M.GitignoreYourgitproject(youdon'tneedtobefamiliarwithgittosolvethisproblem)hassomefilesthatshouldbeignoredfromsynchronizing.Youneedtocalculatetheminimumnumberoflinesneededforgitignore.Formally,yourprojectisa......
  • Codeforces Round 921 (Div. 2)
    CodeforcesRound921(Div.2)比赛地址A.WeGotEverythingCovered!思路这个就是一个简单的拼接,这里很容易的发现我们最后最优的方法就是将所要拼写的字母按顺序拼接成n份就好了,但是这里需要主义一下简单的优化Code#include<bits/stdc++.h>usingnamespacestd;#define......
  • CF Round 921 (Div. 2)
    linkA一种可行的方案是将前\(k\)个字母重复\(n\)次,对于每个要找的字符串,从\(n\)段中分别选取一个字符就可以得到。B如果\(x\)是答案的话,它一定满足\(x|n,\frac{x}{n}\leqm\),直接枚举答案,时间复杂度\(O(\sqrtn)\)。C沿着A的思路继续思考,如果能将\(s\)分成至......
  • 洛谷题解-P1821 [USACO07FEB] Cow Party S
    https://www.luogu.com.cn/problem/P1821题目描述寒假到了,nnn头牛都要去参加一场在编号为xxx的牛的农场举行的派对,农场之间有mmm条有向路,每条路都有一定的长度。每头牛参加完派对后都必须回家,无论是去参加派对还是回家,每头牛都会选择最短路径,求这nnn头牛的最短路径(一个......
  • PowerShell编写Windows服务器的DDNS-ipv6客户端
    这个代码保存成ddnsv6.fm20.cn.ps1就能正常运行了functionGet-GUID(){#指定注册表路径$path="HKLM:\Software\Firadio\ddnsv6.fm20.cn"#如果注册表路径不存在则创建if(-not(Test-Path$path)){New-Item-Force-Path$path>$null}......
  • 牛客练习赛121补题
    C.思路由于水滴会影响一个区间里的水滴,所以只需要为何区间[l,r]即可ac代码#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;consti64inf=1e18;typedefpair<int,int>pii;constintmod=1e9+7;constintN=2e5+10;inta[N];intn......