cmd控制台输出到变量

时间:2012-09-26 11:37:45

标签: batch-file cmd windows-console

我有一些工具可以将一些数据直接输出到控制台输出。

我想将此输出保存到某个变量,然后将其传递到其他地方......

有可能吗?

示例:

rem this outputs String1 values from myfile.txt
GetString myfile.txt String1
rem I want this value for example in %p% variable, and then:
call MyApp %p%

2 个答案:

答案 0 :(得分:5)

你可以试试这个

for /f %%a in ('GetString myfile.txt') do call MyApp %%a

虽然我不确定你对String1位的意思,如果这不对,你能澄清一下吗?

答案 1 :(得分:3)

一般来说,我会建议遵循@Balic C的答案,因为它没有临时文件。然而,当命令或参数或两者都包含空格并且您需要处理正确的引用时,for命令会出现问题(或者至少可能难以正确)。

在这种情况下,您还可以将工具的输出存储在临时文件中,然后使用set /P将其读入变量:

set temp_file=%TEMP%\%~n0.tmp
GetString myfile.txt > "%temp_file%"
set /P p=<"%temp_file%"

call MyApp %p%

del /F "%temp_file%"