Windows命令行

我有一个exe文件,该文件会生成带有某些参数的输出,并且我希望从该输出中将整数部分存储在如下文件中:

C:\MyExe -param给出o / p 123abc,因此123应存储在文件中。我们如何通过Windows命令行实现这一目标?

G-Man说“恢复莫妮卡”

这不如dbenham的回答那么优雅,但它是纯Windows。如果程序的输出始终看起来像您的示例(一个数字序列,紧跟一个小写字母,然后是其他东西),那么它将起作用:

for /f "delims=abcdefghijklmnopqrstuvwxyz" %x in ('C:\MyExe -param') do echo %x > out.txt

笔记:

  • 如果最后一位数字后面可能跟着小写字母(甚至是空格)以外的其他字符,请在delims=字符串中包括所有可能的定界符
  • 如果在交互式命令提示符中键入以上命令,则该命令将起作用。要在批处理文件(即命令提示符脚本)中使用它,请更改%x%%x(两次出现)。
  • 上面的命令将对包含至少一个定界符的echo %x > out.txt每一行输出执行一次子命令C:\MyExe -param如果您的程序只写那一行,那没问题。如果您编写多个这样的行,例如,

    5gold rings
    4calling birds
    3french hens
    2turtle doves
    1partridge
    

    它将每次都覆盖文件,并且您最终只会得到最后一个值。如果要捕获所有数字,请添加括号,如下所示:

    (for /f "delims=abc…xyz" %x in ('C:\MyExe -param') do echo %x) > MyOutputFile.txt
    ↑                                                            ↑
    

    因此,整个命令(直到echo %x)将被视为单个命令,并且重定向(>)仅发生一次。或者,只需将更>改为>>,输出将累积(但文件中以前的任何内容仍将保留,并在其后附加新的输出)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章