2014-05-09 90 views
0

我發現一些有趣的事情,當我嘗試從文件夾中讀取文本文件:讀取含有括號的名稱的文本文件?

$files = Get-ChildrenItem "C:\MyFolder" -Recursive | ?{$_.Extension -like '.txt'} 
foreach ($file in $files) { 
    [string]fileFullName = $file.FullName 
    $content = Get-Content -Path $fileName 
    .... 
} 

我遇到了一些例外,如果文件名包含[和]字符,例如,[1] .TXT。

我想每個東西都是PS中的對象。因此,至於我的理解,文件名中的[..]可能被視爲索引訪問。有沒有辦法用括號來處理文件?

回答

1

你想-LiteralPath

$files = Get-ChildItem "C:\MyFolder" -Recurse | ? { $_.Extension -like '.txt' } 

foreach ($file in $files) { 
    [string]$fileFullName = $file.FullName 
    $content = Get-Content -LiteralPath $fileFullName 
    $content 
} 

從詳細的幫助()你willsee:

-LiteralPath 指定到某個項目的路徑。與Path不同,LiteralPath的值完全按照輸入的內容使用。沒有字符是 解釋爲通配符。如果路徑包含轉義字符,則 將其用單引號括起來。單引號告訴 Windows PowerShell不將任何字符解釋爲轉義 序列。

相關問題