Como correr un bat, que abra excel y un archivo txt .

El archivo txt esta generado en columnas, separado por espacios.

1 Respuesta

Respuesta
1

Si solo quieres que lo abra no hace falta un bat, bastaría con un comando desde MSDOS. Bastaría que invocaras al ejecutable EXCEL.EXE (precediendo la invocación del path donde se encuentre, por ejemplo "C:\Archivos de programa\Microsoft Office\Office14\excel") y en la misma línea el path donde se encuentre el TXT. Por ejemplo algo como:

"C:\Archivos de programa\Microsoft Office\Office14\excel" d:\tmp\prueba.txt

Pero con eso no te va a poner en columnas el contenido del txt (las filas sí). Y me imagino que también quieres eso. Es decir, que de alguna manera lo que quieres es no tener que indicar que el txt tiene los campos separados por espacios. Se me ocurre (y eso ya sí que necesitaría un bat) que tal vez podría servir convertir el TXT en un CSV cambiando, antes de invocar a Excel, los espacios por ";" (o el carácter regional para los CSV, que puede ser ",", depende de como tengas configurado tu entorno regional). Para concretar esto me vendría bien un ejemplo más o menos real (porque si los campos ya llevan en sí caracteres como ";" no valdría este "truco").

¿Algún comentario respecto a la respuesta?

Cordial saludo, primero que todo darle gracias por su respuesta. para ser más explicito me permito comunicarle el ejemplo.

tengo una aplicación en COBOL rm85, y estoy generando un archivo plano en columnas separado por espacios, pero en la descripción de la salida lo genero con extensión XLS. La aplicación corre desde un .bat, y cuando sale de la opción que genera el archivo, corro excel y le doy el nombre del archivo para que me lo muestre en excel; lo hace, pero me muestra la información comprimida y no en columnas. Si yo abro excel y busco el archivo y lo abro lo hace, mas no desde el .bat que corre la aplicación. envio el ejemplo de como lo hago. 

ASOCC EXCEL

PRUEBA.XLS

No acabo de entender del todo el ejemplo. Voy a poner yo otro. Imagina que el archivo plano (de nombre, digamos, enrique.txt) tiene este aspecto:

Tenía una casita chiquitita en Canadá
Con un estanque y flores
Las más lindas que hay allá
Y todas las muchahas que pasaban por allí
Decían que bonita es la casita en Canadá

y que quieres que en Excel salga así:

Obviamente esto se puede conseguir si desde Excel abres el archivo y le indicas a Excel que se trata de un archivo con datos "delimitados" y que el delimitador/separador es el "espacio". Pero eso obligaría a hacerlo "manualmente" (aunque creo que hay alguna manera de hacerlo con macros, pero no domino Excel). En cambio si mediante un BAT cambiamos los espacios por ";" y generamos un archivo CSV (digamos enrique. Csv) Excel podría abrirlo directamente.

El siguiente BAT podría hacer el "milagro":

@echo off
Setlocal EnableDelayedExpansion
Del enrique. Csv
for /f "tokens=* delims=" %%i in (enrique.txt) do (set ANT=%%i&echo !ANT: =;! >>enrique.csv)
"C:\Archivos de programa\Microsoft Office\Office14\excel" d:\bat\enrique.csv

Estoy partiendo de que el bat que se ejecuta está en d:\bat, lo mismo que el archivo enrique.txt. Y que el ejecutable de Excel está en el path indicado. Y que el "carácter regional" para los archivos CSV es el ";" (en entornos angloparlantes suele ser la coma y no el punto y coma o semicolon y en general es un parámetro configurable en la "configuración regional")

Mira a ver si esto te sirve y si se ajusta a tus necesidades. Si no fuera así dímelo y vemos si se puede hacer de alguna otra manera.

El editor de la página ha cambiado alguna línea de mi bat (suele hacerlo). Dónde ha salido "Del enrique. Csv" debería haber salido "del enrique.csv" (las mayúsculas no importan demasiado pero el espacio que ha introducido entre el punto y csv inutiliza el comando "del". Corrígelo antes de usarlo.

¿Has probado lo que te sugería?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas