GIT搞亂了一些檔案,它把基于unix的檔案以LF格式保存在系統中。
也有少數Windows檔案被保存為CR LF格式。
我需要區分基于UNIX的檔案和基于Windows的檔案。
我能夠成功地為一個文本檔案撰寫以下代碼。下面的代碼回傳TRUE,因為它是一個Windows檔案。
PS C:DesktopSecretSauce>(GET-CONTENT 'HIDEME. TXT' -raw) -match "
$"
問題:
在同一個位置上有1000個不同格式的檔案(txt, cpp, hpp, sql),有LF和CR LF格式。
我需要獲得帶有檔案路徑、帶有擴展名的檔案名和True(如果它是CR LF)和False(如果它是LF)的輸出。
當我執行這個命令來檢查多個檔案時,輸出沒有回傳任何結果。
(Get-Content -Path 'C:DesktopSecretSauce*. *' -raw) -match "
$"
使用Powershell的最佳方法是什么?
uj5u.com熱心網友回復:
這是一個昂貴的方法,因為每個檔案都是全讀的,但是下面的方法應該能達到你想要的效果:
Get-ChildItem -File -Path H:DesktopParent_FolderSub-Folder2*.*|
ForEach-Object {
[pscustomobject] @{
HasCRLF = (Get-Content -Raw -LiteralPath $_.FullName) -match '
'/span>
名稱 = $_.名稱
FullName = $_.FullName
}
}
你會看到如下輸出:
HasCRLF Name FullName
------- ---- --------
False foo.txt H:DesktopParent_FolderSub-Folder2foo.txt
True bar.txt H:DesktopParent_FolderSub-Folder2ar.txt
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/309306.html
標籤:
