如何從 DIR 指令輸出中過濾掉 .svn-base 檔案?

如何從 DIR 指令輸出中過濾掉 .svn-base 檔案?

我想知道如何執行以下操作(在 Windows 中)

我需要檢查 c:\directory 和所有子目錄中所有內容的完整路徑中的字元總數。這是我正在使用的命令:

dir /b /s c:\directory\ > output.csv

/B 使用裸格式(無標題資訊或摘要)。

/S 顯示指定目錄及所有子目錄中的檔案。

問題是 c:\directory 是一個 SVN 簽出目錄,並且有大量我不想在 output.csv 檔案中看到的 .svn-base 檔案。如何過濾 DIR 的輸出,以便在我將輸出傳輸到的 output.csv 中看不到任何 .svn 或 .svn-base 檔案?

我嘗試使用 Excel 搜尋 output.csv 中的第一列以選擇包含“svn”的任何行,但此 csv 檔案中包含超過 30,000 行,如果我這樣做,可能需要一段時間才能過濾掉所有內容。

有沒有類似 windows 的 grep 的東西可以用來完成這個任務?我下載了 grep GNUWin32,但是當我嘗試使用它時,我收到一些有關缺少庫文件的錯誤。

我還嘗試在 DIR 中使用 /AH 開關,但出於某種原因,我仍然在每個子目錄中獲得 .svn 資料夾:( 很可能是我沒有使用該開關來正確顯示隱藏檔案。

答案1

在 cmd 提示字元下,應該執行以下操作:

dir /b /s c:\directory\ | Findstr /V /I .svn > output.csv

如果您使用的是 Windows 7/8 或安裝了 Powershell,我建議您學習它。在 Powershell 中你會做類似的事情:

Get-ChildItem . -exclude *.svn -recurse | Select-Object Name | Export-CSV .\output.csv -NoTypeInformation

答案2

替代解決方案(以尺寸為代價)

在 dir svn exportWC 進入匯出目錄之前並消除這種方式 .svn dir(s)

相關內容