regex 正则表达式与dir命令直接进入powershell

iih3973s  于 2023-05-08  发布在  Shell
关注(0)|答案(4)|浏览(193)

我试图列出所有的文件与.rar或.zip文件类型。
我尝试了正则表达式,就像你可以在在线正则表达式助手中找到的那样,但这些似乎都不起作用。
也许问题是试图直接在cmd/powershell中执行此操作而不是脚本中执行此操作?

dir *./(zip|rar)/

预期的结果将类似于:file1.rar file2.rarfile3.zip

dced5bon

dced5bon1#

在PowerShell中,dirGet-ChildItem的别名。不能直接使用正则表达式。PowerShell将正则表达式解释为通配符。
正如在其他答案和the Get-ChildItem documentation中所指出的,您可以使用逗号分隔您的搜索词。dir *.zip,*.rar,这是

Get-ChildItem -path *.zip,*.rar

如果你想使用正则表达式,你需要将Get-ChildItem的结果赋给一个变量,然后使用-match

> $dir = Get-ChildItem
> $dir -match "\.(zip|rar)$"

或者使用括号将其转换为一行代码:

(Get-ChildItem) -match "\.(zip|rar)$"
mfuanj7w

mfuanj7w2#

get-childitem -path接受数组。不是正则表达式,而是一个通配符数组,它们起着同样的作用。

dir *.zip,*.rar
bbmckpt7

bbmckpt73#

你可以这样做(不使用正则表达式):
Get-ChildItem -Path "Path\*" -Include *.rar,*zip

xggvc2p6

xggvc2p64#

dir ("*.zip","*.rar")

应该可以

相关问题