2009-02-11 16 views
5

me gustaría traducir una secuencia de comandos siguiente de shell de Linux a Windows XP shellASIGNAR Win XP de salida de línea de comandos a la variable

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

La segunda línea se ha traducido; el problema está en definir una variable que contiene cáscara de salida en las ventanas :-(

+0

Por favor, marque sus solicitudes correctamente – PierreBdR

+0

¿Está realmente atrapado con DOS (shell XP)? Es muy limitado en comparación con un shell de Linux. Si es posible, recomiendo ir con uno de los lenguajes de script disponibles en XP (VBScript o jscript) si es posible. O mejor aún si es posible instale powershell. También puedes instalar cygwin. – EBGreen

Respuesta

0

¿Qué tal ...

para/f "tokens = *" %% a en ('echo Hola Mundo') no establecido var = %% a

NOTA:. utilización% en lugar de un %% a cuando se trata de la línea de comandos cosa mantenerlo como un %% si se utiliza en un archivo por lotes

Donde 'echo Hola Mundo' se el comando cuyo resultado desea capturar y "var" es el nombre de la variable donde se almacenará la salida.

+0

Eso es lo más cercano que podrá venir, pero el OP debe ser consciente de que las cadenas de líneas múltiples no se pueden almacenar en una var. DOS. – EBGreen

1

Si necesita recurse a través de la salida del comando, puede usar for /f. Algo así como:

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

Lo siento, no soy muy hábil, pero espero que entiendas la idea. –

4

bien problema fijo

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 

Este código hace básicamente lo que quería hacer.

Eres genial Gracias !!!!!

Cuestiones relacionadas