PowerShell 通配符 Get-Item 無法帶有方括號名稱的檔案
這算是 PowerShell 5.1 預設給的方便的,不過在不知情的情況下就造成bug了
假設有一個 [1]File.txt
的檔案,於是就這樣獲取
Get-Item [1]File.txt
居然什麼都沒有,於是乎聰明如你,用引號總能解吧?
Get-Item "[1]File.txt"
Get-Item '[1]File.txt'
想不到吧很遺憾還是沒有辦法
這東西叫做通配符,內建在 Get-Item 裡的所才沒法通過引號處理的
about Wildcards - PowerShell | Microsoft Learn
下面是兩個能解的範例
# 使用函式接口 LiteralPath
Get-Item -LiteralPath [1]File.txt
# 連帶反轉意符號一起傳進去 (雙引號不行傳入前就會被解掉了)
Get-Item '.\`[1`]File.txt'
方括號出現概率不是很高,但基本上只要量夠多基本就一定會有的東西,不知道的話有一天絕對會踩到的
沒有留言:
張貼留言