我想将以下脚本从 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 输出的变量:-(
我想将以下脚本从 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 输出的变量:-(
好的问题已解决
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”是存储输出的变量的名称。