将WIN XP命令行输出分配给variables

我想将下面的脚本从linux shell转换到Windows XP shell

GPSID=$(awk '/GPSID/ {print $3}' gora.RTK ) awk -v variable=${GPSID} 'BEGIN {printf "Numer seryjny : " variable,$1}' >>out.txt 

第二行已被翻译; 问题是在Windows中定义一个包含shell输出的variables:-(

Solutions Collecting From Web of "将WIN XP命令行输出分配给variables"

好的问题修复

 for /f "tokens=*" %%a in ('awk "/GPSID/ {print $3}" gora.RTK ') do set var=%%a awk "BEGIN {printf \"GPSID : \" }" >out.txt echo %var% >>out.txt 

这个代码基本上做我想做的事情。

你很好,谢谢!

如果需要通过命令的输出进行递归,则可以使用for /f 。 就像是:

 for /f "usebackq" %%L in (`awk '/GPSID/ {print $3}' gora.RTK`) do ( awk 'BEGIN {printf "Numer seryjny : " %%L,$1}' >> out.txt ) 

怎么样 …

for / f“tokens = *”%% a in('echo Hello World')do set var = %% a

注意:在命令行上使用%a而不是%% a,如果在批处理文件中使用,则保留为%% a。

其中'echo Hello World'是你想要捕获输出的命令,'var'是输出将被存储的变量的名字。