快速搜索给了我tawbaware wc,但它不接受 stdout 作为输入流,这意味着我不能在DOS会话中使用管道。
笔记:
我无法安装 cygwin 或使用 powershell(本来可以使用 ' |foreach-object {(get-content $_).count}
')
快速搜索给了我tawbaware wc,但它不接受 stdout 作为输入流,这意味着我不能在DOS会话中使用管道。
笔记:
我无法安装 cygwin 或使用 powershell(本来可以使用 ' |foreach-object {(get-content $_).count}
')
更容易,find /c
. 前任:
netstat -an | find /c "ESTABLISHED"
find /c
:仅显示包含字符串的行数。
您可以使用为 Windows 构建的原始“wc”:它是coreutils包的一部分。获取最新的 coreutils exe。
对于 Windows 上的 unix 工具,您的选择是:
msys - 与 unixtools 类似,最初只是 mingw(gcc 的本机版本)所需的一些构建工具,现在几乎拥有所有 cygwin 工具
cygwin - 几乎适用于 unix,安装复杂,需要 dll 来提供 unix api。混合使用不同版本的 cygwin.dll 构建的工具可能会出现问题
Unixtools - 不是 cygwin 提供的所有工具,而是本地编译的
ch - 几乎所有的 unix 工具,本机编译。以及一个包含“c”解释器的外壳。标准版是免费的(啤酒),但不是开源的。
uwin - 没有 ATT,如果你喜欢这种东西,包括 korn shell。
mks一个商业端口的 unix 工具。鉴于可用的免费版本相当昂贵。
尝试:
find /c /v "~any string that will never occur~"
此命令对不包含搜索字符串的所有行进行计数。测试它,我看到一个问题,它似乎没有计算文件末尾的空行。
我的unxutils包有字数:
C:\Java\vssWorkspace\java\portlets_core>wc -l C:\Users\malp\AppData\Local\Temp__portlets41366.html 79717 C:\Users\malp\AppData\Local\Temp__portlets41366.html
此外,unxutils 页面显示wc.exe可用。您是否正在寻找wc.exe无法处理的内容?
以下是另外两种(纯 Windows CMD)计算 git 日志中行数的方法:
set n=0
for /f %a in ('git log --oneline') do set /a n=n+1
或者:
git log --online | find /v /c ""
第一个的优点是你最终得到了一个环境变量中的值,你可以用它来做事。但是对于大文件,它可能会执行缓慢。
还有WinXs 4.2,它是共享软件,所以你可以看看它是否能满足你的需要。
您可以为此安装脚本语言吗?这可能是矫枉过正,但如果它以最少的大惊小怪完成工作......
我找到了这个线程,并被仅使用 Windows 内置的工具模拟 wc 的创新解决方案所吸引。这激发了我对字符数的需求的答案,以便我可以在与 Web 表单字段的最大字符的战斗中获胜警告。
如果您想要wc -c给出字节数,您可以使用DEBUG,这是 Windows 中的一个 DOS 实用程序(HELP 命令未列出)。字符数应等于字节数减去行数乘以换行符的大小,换行符是 Unix 的一个换行符 ('\n') 或两个字符,回车 + 换行符('\cr' 和 '\lf' 或 ' \0Dh' '0Ah' 用于 DOS 纯文本文件。
字符数 = 字节数 - (行数 * sizeof("\n"))
为此,打开一个命令行窗口(开始->运行->打开:“cmd”),在纯文本文件上运行调试并检查包含加载文件长度的 CX 寄存器:
调试 [路径名] -rcx CX [十六进制文件长度]:-q
然后在文件上运行查找:
find /v /c "notlikelystring" ---------- [路径名]: [行数]
并应用公式。
getgnuwin32有助于下载和安装 gnuwin32(当然有 wc 实用程序)。