2012-09-20 14 views
7

Me di cuenta de que cuando uso echo para imprimir algo en un archivo en DOS, se agrega un espacio a la cadena. Necesito imprimir la cadena sin el espacio final. ¿Hay alguna manera de hacerlo o, como solución alternativa, eliminar los espacios finales del archivo?Uso del eco sin espacio final en DOS

Respuesta

19

Si entendí el problema correctamente, escribió el espacio final.

En lugar de

echo string > file 

uso

echo string>file 
+0

¡Ja! ¡Eso es exactamente! No me di cuenta de que el eco daría salida a la cadena exacta después de eso. ¡Gracias! – Rayne

+2

Esto parece bueno, pero no funcionará. Intenta esto: 'echo 1 2 3> file'. Si la cadena termina con un número, la redirección lo tratará como un canal de canalización. Podría ponerlo entre comillas, pero puede que no lo quiera entre comillas. – Synetech

+2

@Synetech '(echo 1 2 3)> archivo' – bers

0

un poco de búsqueda rápida me llevó this link

Parece tiene varias opciones. Si desea analizar el archivo de post-eco usando un script, usted podría considerar este VBScript

Do While Not WScript.StdIn.AtEndOfStream 
    WScript.Echo RTrim(WScript.StdIn.ReadLine) 
    Loop 

el que los bucles, línea por línea a través de un archivo (normalmente .txt), y realiza RTrim, que quita los espacios.

Saludos

+0

Lo mismo se puede hacer por lotes con un' for/f "tokens = * delims =" %% x en (archivo.txt) echo% x> archivo2.txt '. Pero entonces, ¿por qué no hacerlo en tu archivo original? –

10

Suponiendo que estás hablando cmd.exe en lugar de la real (en lugar obsoleta) MS-DOS, hay una serie de maneras de hacer esto, el primer ser:

echo Here is some text>output.txt 

pero Me resulta algo menos legible ya que estoy acostumbrado a poder delinear claramente 'argumentos' en la línea de comando.

Por otra parte, no hay nada que le para de intercambio de todo el orden de la línea de comandos:

>output.txt echo Here is some text 

que le permitirá todavía para separar los argumentos, mientras que no tener espacios extraños puesto en el archivo de salida.

De hecho, a menudo he utilizado este método para bloques de código así:

>output.txt (
    echo hello 
    echo goodbye 
) 

el que escribirá ambas líneas al archivo. Me parece preferible en ese caso, ya que sabes desde el principio hacia dónde se dirige la salida, en lugar de tener que ir y mirar el final del bloque de código.

+0

He encontrado que al hacer eco desde dentro de un bloque de código a veces pierde el retorno de carro, y la salida en una sola línea. –

+0

También tuve problemas con los espacios iniciales, así que utilicé el escape caret (^): echo^string1, en el formato anterior. Funcionó una delicia. – will

+0

'echo Aquí hay algo de texto> salida.txt pero me resulta algo menos legible ya que estoy acostumbrado a poder delinear claramente 'argumentos' en la línea de comandos. Más importante aún, si el texto termina con un número, se tratará como canal de canalización. El segundo parece funcionar bien (no recuerdo haber visto esa forma antes). Gracias. – Synetech

Cuestiones relacionadas