PowerShell如何用通配符匹配文件路径?方法实例

发布时间:2020-10-12编辑:脚本学堂
本文介绍了PowerShell中使用通配符匹配文件路径的方法,powershell中星号通配符的应用,需要的朋友参考下。

星号(*)在DOS的时代,就是通配符(英文叫Wildcard)的代表。
从DOS到Windows,再到Powershell,星号一如既往的坚守在通配符的岗位上。

例子:
 

复制代码 代码示例:
PS [zhanghong] >dir d:*.vbs
   目录: D:
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---          2013/6/5     16:42        211 test.vbs
 

列出所有的D盘根目录下的vbs后缀的文件。

经常使用powershell跟路径打交道,怎么样灵活的从目录体系中抓取出自己想的文件呢?
在PowerShell的路径中,可以使用多个通配符,从而大幅度提高效率。

例如,开设虚拟主机时,把所有的用户数据都放在这样一个模式的目录下:
 

d:wwwroot网站名称wwwroot

如果要查找所有用户网站根目录下的index.php文件,可以在路径中带上一个通配符:
 

dir d:wwwroot*wwwrootindex.php

如果想看所有的以index为文件名的文件,可以这样:
 

dir d:wwwroot*wwwrootindex.*

黑客往往喜欢往名称为index或default的文件里面插入黑链,可以通过这样的方式快速的找到相关文件,好进行下一步的侦察工作。

PowerShell中使用Like运算符配合通配符查找字符串例子

PowerShell中使用Like运算符配合通配符查找字符串例子,Like的返值为TRUE和FALSE。在PowerShell中使用通配符来查找字符串,和通配符一起使用的是like运算符。
在PowerShell中的通配符是星号(*)和问号(?),这跟DOS系统中是一样的。
要使用通配符在字符串中查找,可以使用like运算符。

例子:
 

“123”是以1开头
PS C:Userssplaybow> "123" -like "1*"
True

“123”是以1开头,3结尾
PS C:Userssplaybow> "123" -like "1*3"
True

“123”包含2
PS C:Userssplaybow> "123" -like "*2*"
True

“123”中包含1
PS C:Userssplaybow> "123" -like "*1*"
True

“123”有3个字符
PS C:Userssplaybow> "123" -like "???"
True

“123”有2个字符
PS C:Userssplaybow> "123" -like "??"
False

有了以上的一些例子,大家对powershell中like运算符加通配符来实现字符串查找,应该有个深入的认识了。

说明,like运算符的返回值是布尔值,即True或Flase。
那它可以用于条件判断,比如if语句中,或where-object语句中。

例子,用于列出当前正在运行的程序中,程序名称是以字母“c”开头的。
 

复制代码 代码示例:
PS C:Usersspaybow> Get-Process | ?{$_.name -like "c*"}
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
     24       5     2264       3424    48     0.02   5332 cmd
     46       6     1860       5208    63            1064 conhost
     62       8     2916       7736    81     0.27   5304 conhost
    637      12     2264       5148    84             512 csrss
    540      22     2904      29252   216             624 csrss

注意:上面PowerShell语句中的问号(?)是where-object的别名。