匹配

2014-07-03 38 views
0

列表匹配的模式,但似乎无法得到它仅列出我需要我最终将用户输入更换滤芯匹配

$src = $env:ININ_TRACE_ROOT 
$cmp = $env:COMPUTERNAME 
$dst = $env:USERPROFILE + "\Desktop\" + $cmp 

$lDate = Read-Host "Which Date?" 
$s2 = $src + "\$ldate\" 
$filter = "ip" 
Get-ChildItem -Path $s2 | Where-Object { $_.Name -match $filter } | Select Name 

试过文件所有文件名PowerShell将选择的文件名上述问题是它返回

accserver.zip                           
acdserver.zip                           
adminserver.zip                           
adminserver_1.zip                          
caasbillingserver.zip                         
caasproxyserver.zip                          
CallLog.zip                            
clientservices.zip                          
ClientStatsWkgQDataLog.zip                        
compressormanager.zip                         
datamanager.zip                           
dsserver.zip                           
fbmc.zip                            
hostserver.zip                           
httppluginhost.zip                          
i3runcrreport.zip                          
i3runcrreport_1.zip                          
i3runcrreport_2.zip                          
i3runcrreport_3.zip                          
imapconnector.zip                          
ininfaxserver.zip                          
interactionclient.zip                         
interactionrecoveryu.zip                        
ip.ininlog_journal                          
ip.zip                             
ipdbserver.ininlog_journal                        
ipdbserver.zip                           
ipserver.ininlog_journal                        
ipserver.zip                           
ip_1.zip                            
ip_10.zip                            
ip_11.zip                            
ip_12.zip                            
ip_13.zip                            
ip_14.zip                            
ip_2.zip                            
ip_3.zip                            
ip_4.zip                            
ip_5.zip                            
ip_6.zip                            
ip_7.zip                            
ip_8.zip                            
ip_9.zip                            
iwpserver.zip                           
LineGroupStatsDataLog.zip                        
mail account monitor.zip                        
mrcpsubsystem.zip                          
notifier.zip                           
notifierserver.zip                          
notifier_1.zip                           
notifier_2.zip                           
notifier_3.zip                           
optimizer server.zip                         
OutOfProcCustomDLL.zip 
postofficeserver.zip                         
processautomationserver.zip                        
promptserver.zip                          
provisionserver.zip                          
QueuePeriodAgentStatsDataLog.zip                      
QueuePeriodWorkgroupStatsDataLog.zip                     
queuestatprovider.zip                         
recorder server.zip                          
RecoSubsystem.zip                          
remocoserver.zip                          
rstrapmonitor.zip                          
sessionmanager.zip                          
SIPEngine-mrcp.ininlog_journal                       
SIPEngine-mrcp.zip                          
SIPEngine.ininlog_journal                        
SIPEngine.zip                           
smsserver.zip                           
smtpconnector.zip                          
SNMPAgent.zip                           
statalertserver.zip                          
statserveragent.zip                          
statserveragent_1.zip                         
statserveragent_2.zip                         
statserverworkgroup.zip                         
statserverworkgroup_1.zip                        
statserverworkgroup_2.zip                        
surveyservice.zip                          
switchover.zip                           
switchoverfilemonitor.zip                        
tracker server.zip                          
tracker server_1.zip                         
transactionserver.zip                         
transactionserver_1.zip                         
transactionserver_2.zip                         
transactionserver_3.zip                         
transactionserver_4.zip                         
tsserver.zip                           
tsserver_1.zip                           
tsserver_2.zip                           
tsserver_3.zip                           
voicexml host server.zip 

问题是我需要它来只返回

ip.zip 
ip_1.zip                            
ip_10.zip                            
ip_11.zip                            
ip_12.zip                            
ip_13.zip                            
ip_14.zip                            
ip_2.zip                            
ip_3.zip                            
ip_4.zip                            
ip_5.zip                            
ip_6.zip                            
ip_7.zip                            
ip_8.zip                            
ip_9.zip 

任何想法如何实现这个

使用此更新现在返回列表,但有没有更好的方法来做到这一点?

$filter = "^ip[^server][^db][^ininlog_journal]" 

而且这工作,但缺少非ip.zip

$filter = "^ip_[0-9]"                 
+1

由于Bill_Stewart声明你想匹配的是'^ ip''这是一个正则表达式(通常称为RegEx)。克拉字符(^)指定字符串或行的开头,所以这将匹配任何以文本“ip”开头的内容。你看到的问题是,你接着指定一个下划线,后面跟着一个数字。如果你脱掉滤波器的“_ [0-9]”部分,它应该可以正常工作。这里的关键是克拉字符,迫使“ip”匹配位于该行的开头,因此它不会匹配.zip中的ip。 – TheMadTechnician

回答

3

由于-match使用正则表达式,你应该能够编写这样的事:

get-childitem $s2 | where-object { $_.Name -match '^ip' } 

(即,当Name属性以ip开始时匹配)。

有关更多信息,请参阅about_Regular_Expressions帮助主题。