我想知道如何做以下操作(在 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
替代解决方案(以尺寸为代价)
在目录svn export
WC 进入 export-dir 之前并以此方式消除 .svn 目录