通过管道连接到 findstr 的输入

2024-05-12

我有一个文本文件,其中包含宏名称列表(每行一个)。我的最终目标是打印宏名称在当前目录的文件中出现的次数。

宏的名称位于C:\temp\macros.txt.

type C:\temp\macros.txt在命令提示符下可以正常打印列表。

现在我想将该输出通过管道传输到标准输入findstr.

type C:\temp\macros.txt | findstr *.ss(ss 是我在其中查找宏名称的文件类型)。

这似乎不起作用,我没有得到任何结果(非常快,它似乎根本没有尝试)。findstr <the first row of the macro list> *.ss确实有效。

我也尝试过findstr *.ss < c:\temp\macros.txt没有成功。


我认为你有点困惑如何findstr作品。它以文件名(模式)或标准输入的形式获取输入(查找内容 - 不是要查找的内容),但您要查找的内容是always在命令行上作为参数给出findstr.

findstr foo xyz.txt

找到字符串foo在文件中xyz.txt.

type meh.txt | findstr x

找到字符串x在上一个命令的输出中(在本例中为文件的内容meh.txt– 很好的浪费type命令,非常类似于常见的滥用cat).

既然你在之后counts我建议采用不同的方法,而不是宏名称出现的实际行。这假设包含宏的文件每行列出一个宏:

for /f "delims=" %x in (macros.txt) do @(echo %x: & find /c "%x" *.ss)

The for循环逐行迭代文件的内容。然后它会继续打印您正在搜索并执行的名称find /c它实际上计算匹配行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过管道连接到 findstr 的输入 的相关文章

  • Windows 批处理文件中的 SQL 语句

    有没有办法让Windows批处理文件直接输入SQL语句而不需要调用脚本 我希望批处理文件登录SQL 然后直接输入语句 EDIT 我正在使用 Oracle v10g 对于单个命令 您可以使用以下技巧 echo select from dual
  • Subversion 中的忽略文件会从 svn:ignore 属性中删除旧值

    我有一个 Subversion 工作副本G csmdepot 构建其中有不同的文件 有些被忽略 有些则没有 我忽略了 Tortoise 的文件 Build 1 wimignored Build 2 wimignored WimID xml
  • 读取txt文件中的每一行并使用windows dos命令分配变量

    我通过使用 Beyond Compare 命令行比较这 2 个文件夹 将文件从一个路径复制到 svn 工作副本 使用 Beyond Compare 进行比较后将生成报告 如果右侧存在任何额外文件 则应从 svn 存储库中删除 所以我使用下面
  • 批量设置变量=%变量:~1%是什么意思

    谁能解释一下是什么 1 在批处理文件中的以下语句中 我分配的值 variable到服务器名称并尝试过echo variable 我得到与输出相同的服务器名称 谁能解释一下下面的语句是如何工作的 set variable variable 1
  • Windows 批处理:如何添加主机条目?

    我想使用此批处理脚本通过使用自动将新条目添加到我的主机文件中windows questions tagged windows batch 不幸的是 剧本只需在主机文件中添加一行 当我以管理员身份运行脚本时 又出了什么问题 echo off
  • 如何清除通过“set /p var1=”从命令行设置的变量

    在 Windows 批处理文件中 我接受来自用户输入的变量set p var1 after var1已使用 我不知道如何重置 清除其值 如果我不重置 清除它的值 当用户遇到set p var1 再次 用户直接输入 之前的输入值仍然存在 我不
  • 如何使用 Windows forfiles 命令的完整路径运行命令?

    我正在尝试运行以下命令 forfiles p Schemas m xsd c cmd c C Program Files x86 Microsoft SDKs Windows v10 0A bin NETFX 4 6 1 Tools xsd
  • 如何在批处理文件中测试当前驱动器号?

    我正在尝试编写一个批处理文件 该文件获取运行批处理文件的驱动器号 并使用它的 IF 语句 例如如果字母是M 则会跳转到标签 mSection 这可能吗 您可以使用 d0 来获取驱动器号 像这样的东西 IF d0 M CALL mSectio
  • 从安全角度来看,在 Windows 中使用管道是否被认为是危险的?

    从安全角度来看 在 Windows 中使用管道是否被认为是危险的 管道在 Windows 中并不是一个特殊的安全风险 如果您担心安全性 请确保将管道上的安全描述符设置为适当的 DACL 如果您的使用要求管道开放供任何人连接 那么您必须将传入
  • 如何在后台运行python程序以保持活动窗口相同

    我编写了一个程序 可以将前景窗口更改为显示器尺寸的 85 并且要成功运行 前景窗口需要保持不变 我已将 python 脚本 pyw 放入批处理文件 运行 pythonw 并在桌面上创建了批处理文件的快捷方式 并提供了快速运行它的快捷方式 我
  • popen2()在c中如何工作?

    我尝试使用管道 叉子和 dup 在我的程序中执行 md5sume 命令 我发现总和代码运行成功 但我无法理解某些代码行 这是我的代码 int infp outfp char buf 128 if popen2 md5sum infp out
  • 如何在安装过程中运行“.bat”文件?

    在安装项目中 诸如 exe dll js vbs 之类的可执行文件是可以接受的 但无法运行 bat自定义操作中的文件 问题是如何运行 bat安装过程中的文件 好吧 经过大量搜索和反复试验 我解决了这个问题 我不确定这是否是最好的方法 但它确
  • 如何从 HTA 中启动批处理文件

    我有一个基本的 HTA 其中我尝试通过按钮启动批处理文件 但是当我尝试启动批处理文件时 它不会运行 当我按下按钮时 将启动命令提示符窗口 但不会运行脚本 这是代码的简单示例
  • 批处理脚本 FOR 循环仅设置输出的第一个字母 wsl --list -q

    我正在编写一个批处理脚本 将文件从 Windows 目录复制到 WSL 发行版 其中一部分是选择将文件复制到哪个发行版 如果我使用命令wsl list q如果给我以下输出 Ubuntu 22 04 Ubuntu 18 04 我正在尝试使用此
  • 我可以从命令行或 MS-Dos 启用/禁用网络连接吗?

    我想从 Windows 8 中的命令行启用 禁用网络连接 netsh interface set interface Local Area Connection DISABLED 要启用该接口 您需要运行 netsh interface s
  • Python Popen 与 psexec 挂起 - 不良结果

    我对 subprocess Popen 和我认为是管道的问题有疑问 我有以下代码块 从 cli 运行时 100 都不会出现问题 p subprocess Popen psexec serverName get cmd c ver echo
  • 如何将 Hudson/Jenkins 参数传递给 Windows 批处理命令

    好吧 我需要在我的 Hudson 作业中执行一个批处理文件 我有一个参数 Jenkis 参数 我需要将这个值 如参数 传递给批处理文件 我尝试了以下操作 Deploy cmd configuration DEPLOYCONFIGURATIO
  • 在 angular2 中过滤数组

    我正在研究如何在 Angular2 中过滤数据数组 我研究过使用自定义管道 但我觉得这不是我想要的 因为它似乎更适合简单的表示转换 而不是过滤大量数据 数组排列如下 getLogs Array
  • “以管理员身份运行”时的 Windows 批处理文件起始目录

    我有一个位于目录中的批处理文件 也必须从那里运行 因为它会更新该目录中的文件 这工作得很好 除非用户以管理员身份运行批处理文件 Vista 上需要 那么起始目录是C Windows System32 有什么办法仍然能够知道批处理文件是从哪个
  • 批处理文件:FOR 循环中的 GOTO

    我有一个带有 FOR 循环的批处理文件 在循环中 我必须等待进程结束 为此我使用了 IF 和 GOTO 问题是 GOTO 打破了循环 我尝试寻找其他解决方案 但没有找到任何东西 如何做呢 echo off for f tokens a in

随机推荐