ASSIGN win XP вывод командной строки в переменную - PullRequest
5 голосов
/ 11 февраля 2009

Я хотел бы перевести следующий скрипт из оболочки Linux в оболочку Windows XP

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

Вторая строка переведена; проблема заключается в определении переменной, содержащей вывод оболочки в windows: - (

Ответы [ 3 ]

4 голосов
/ 11 февраля 2009

нормально проблема исправлена ​​

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

Этот код в основном делает то, что я хотел сделать.

Ты замечательный Спасибо !!!!!

1 голос
/ 11 февраля 2009

Если вам нужно выполнить рекурсию через вывод команды, вы можете использовать for /f. Что-то вроде:

for /f "usebackq" %%L in (`awk '/GPSID/ {print $3}' gora.RTK`) do (
    awk 'BEGIN {printf "Numer seryjny : " %%L,$1}' >> out.txt
)
0 голосов
/ 11 февраля 2009

Как насчет ...

for / f "tokens = *" %% a in ('echo Hello World') действительно установить var = %% a

ПРИМЕЧАНИЕ: используйте% a вместо %% a при попытке в командной строке, иначе сохраните его как %% a при использовании в командном файле.

Где 'echo Hello World' - команда, выходные данные которой вы хотите записать, а "var" - имя переменной, в которой будут сохранены выходные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...