在Powershell中查找具有确切扩展名的所有文件

svgewumm  于 2023-02-23  发布在  Shell
关注(0)|答案(2)|浏览(163)

我尝试获取所有以“.asp”结尾的文件,但也会获取以“.aspx”或“. asp ...”结尾的文件:

Get-ChildItem C:\test -Filter *.asp -Recurse | % {$_.FullName}

例如,假设我有一个包含test1.asp、test2.aspx和test3.asp的目录,如果我执行脚本,输出将是:

C:\test\test1.asp
C:\test\test2.aspx
C:\test\test3.asp

但我只想让它给我“Test1. asp和Test3. asp”。有关信息,我使用Powershell 2. 1。
有人能告诉我怎么修吗?

km0tfn4u

km0tfn4u1#

尝试再检查最后3个符号

Get-ChildItem 'C:\test' -Filter '*.asp' -Recurse |
Where {$_.Name.substring($_.Name.length -3, 3)  -Match 'asp'} | % {$_.FullName}
t1rydlwq

t1rydlwq2#

**警告:**PowerShell行为似乎已更改!

  • Windows超级用户界面5.1.19041.2364:*
PS C:\Users\OA> Get-ChildItem -File -Path "C:\Test" -Filter "*.txt"

    Verzeichnis: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        05.02.2023     09:59              0 TestFile.txt
-a----        05.02.2023     09:59              0 TestFile.txtLirumLarumLöffelstiel
  • PowerShell内核7.3.2:*
PS C:\Users\OA> Get-ChildItem -File -Path "C:\Test" -Filter "*.txt"

    Directory: C:\Test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---          05.02.2023    09:59              0 TestFile.txt

这两个命令均在Microsoft Windows Pro 10.0.19045.2546(22 H2)上执行。
在旧操作系统上的行为:Windows XP上的PS版本2.0(使用通配符路径代替-File参数)和Windows 7上的PS版本5.14409.1018:两者都具有前一行为。

相关问题