我试图列出所有的文件与.rar或.zip文件类型。我尝试了正则表达式,就像你可以在在线正则表达式助手中找到的那样,但这些似乎都不起作用。也许问题是试图直接在cmd/powershell中执行此操作而不是脚本中执行此操作?
dir *./(zip|rar)/
预期的结果将类似于:file1.rar file2.rarfile3.zip
dced5bon1#
在PowerShell中,dir是Get-ChildItem的别名。不能直接使用正则表达式。PowerShell将正则表达式解释为通配符。正如在其他答案和the Get-ChildItem documentation中所指出的,您可以使用逗号分隔您的搜索词。dir *.zip,*.rar,这是
dir
Get-ChildItem
dir *.zip,*.rar
Get-ChildItem -path *.zip,*.rar
如果你想使用正则表达式,你需要将Get-ChildItem的结果赋给一个变量,然后使用-match。
-match
> $dir = Get-ChildItem > $dir -match "\.(zip|rar)$"
或者使用括号将其转换为一行代码:
(Get-ChildItem) -match "\.(zip|rar)$"
mfuanj7w2#
get-childitem -path接受数组。不是正则表达式,而是一个通配符数组,它们起着同样的作用。
bbmckpt73#
你可以这样做(不使用正则表达式):Get-ChildItem -Path "Path\*" -Include *.rar,*zip
Get-ChildItem -Path "Path\*" -Include *.rar,*zip
xggvc2p64#
dir ("*.zip","*.rar")
应该可以
4条答案
按热度按时间dced5bon1#
在PowerShell中,
dir
是Get-ChildItem
的别名。不能直接使用正则表达式。PowerShell将正则表达式解释为通配符。正如在其他答案和the Get-ChildItem documentation中所指出的,您可以使用逗号分隔您的搜索词。
dir *.zip,*.rar
,这是如果你想使用正则表达式,你需要将
Get-ChildItem
的结果赋给一个变量,然后使用-match
。或者使用括号将其转换为一行代码:
mfuanj7w2#
get-childitem -path接受数组。不是正则表达式,而是一个通配符数组,它们起着同样的作用。
bbmckpt73#
你可以这样做(不使用正则表达式):
Get-ChildItem -Path "Path\*" -Include *.rar,*zip
xggvc2p64#
应该可以