
我發現 powershell 在某些方面可以在有限的範圍內執行正規表示式。毫無疑問它可以做更多的事情,但我不明白為什麼它不在這裡。我正在嘗試使用正則表達式來指定文件/目錄。
例如,當我有一個名為“qwe”的目錄時,這將顯示它
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\[qwe][qwe][qwe]
d---- 24/08/2014 1:28 PM qwe
但我做不到
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\q.e
(取得 qwe 目錄)
如果我這樣做
PS C:\Users\bob\a> Get-ChildItem C:\Users\bob\a\..
然後它返回一個目錄,我無法使用正規表示式找到使其匹配 2 個以上字元甚至 2 個字元的檔案/目錄..
但是,它確實支援正則表達式[abcd] (匹配“a”或“b”或“c”或“d”的字元類)或[az] 的這方面,儘管它有點像[abcd] 那樣非正則表達式只符合結果為一個字元的情況。使用正確的正規表示式,它通常會匹配具有該字元的任何內容,包括當那裡有多個字元時。
答案1
點對檔案名稱有特殊意義,因此您必須使用Where-Object(或其縮寫形式)進行此類過濾:
Get-ChildItem . | Where-Object { $_.Name -match '^q.e$' }