我有一个exe文件,该文件会生成带有某些参数的输出,并且我希望从该输出中将整数部分存储在如下文件中:
C:\MyExe -param
给出o / p 123abc
,因此123
应存储在文件中。我们如何通过Windows命令行实现这一目标?
这不如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] 删除。
我来说两句