2009-02-11 5 views
5

я хотел бы перевести следующий скрипт из Linux оболочки для Windows XP оболочкиASSIGN выигрыша XP выход командной строки переменной

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

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

+0

Пожалуйста, правильно пометьте ваши запросы – PierreBdR

+0

Вы действительно застряли в DOS (XP Shell)? Он сильно ограничен по сравнению с оболочкой linux. Если возможно, я бы рекомендовал по возможности использовать один из языков сценариев, доступных в XP (VBScript или jscript). Или еще лучше, если возможно установить powershell. Вы также можете установить cygwin. – EBGreen

ответ

0

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

для/ф «токенов = *» %% а в («эхо Hello World») делать множество вар = %%

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

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

+0

Это как можно ближе, но OP должен знать, что многострочные строки не могут быть сохранены в DOS var. – EBGreen

1

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

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

Извините, я не владею awk, но, надеюсь, вы получите эту идею. –

4

ОК Исправлена ​​проблема

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 

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

Вы отлично Спасибо !!!!!