Acciones sobre archivos de texto. [Batch]

Iniciado por leogtz, 24 Enero 2009, 00:30 AM

0 Miembros y 3 Visitantes están viendo este tema.

ignorantev1.1

Pues no, ya lo intenté como sugeriste y no sirvió.

Bueno, déjalo, asumiremos que es imposible.

Saludos y gracias.

Eleкtro

#241
El redireccionamiento funciona para TODOS los programas que séan CommandLine.

El problema que dices tener sólo puede ser una de estas dos razones:
  • 1. Que el programa no séa CommandLineInterface
  • 2. Que no estés redireccionando la salida correcta. (Hay una salida standard y otra de errores)

    En algunos programas la salida standard es la "2" por extraño que parezca (Por ejemplo en el FFMPEG), y en esos casos deberás hacer esto (Pruébalo):

    Código (dos) [Seleccionar]
    MiPrograma.exe 2> "Archivo.txt"

    De todas formas también puedes hacerlo con un FOR, AUNQUE ESTA MANERA ES MUY INCORRECTA (Porque con el redireccionamiento es suficiente, pero si dices que no te funciona...):

    Código (dos) [Seleccionar]
    (For /F "Tokens=*" %%# in ('MiPrograma.exe') Do (Echo %%#))>"Archivo.txt"

    Saludos.








Xwatmin

Buenos dias, os sigo desde hace tiempo y me ha surgido un problema que no encuentro solución.

Quiero crear un archivo bat que inicie una rom de un emulador, en este caso emulator model 2 de sega.

He hecho lo mismo con 6 emuladores distintos y nunca he tenido problema, pero justo este emulador parece que no reconociera la ruta de la rom, tan sólo he conseguido abrir el emulador con el siguiente comando:

@echo off

start emulator.exe roms/daytona.zip


Se que se puede lograr ya que he visto un portable de un emulador con una rom similar, pero por más que he probado y buscado, no doy con la solución.

Ojala me podáis ayudar, saludos y muchas gracias.
El físico no es importante, es más importante un ingeniero.

Eleкtro

#243
@XWatmin

Acciones sobre archivos de texto. [Batch]

¿Que tiene que ver tu pregunta con la temática de este hilo?

La máquina Arcade es la que se llama "Sega model 2", el emulador todavía no sabemos cual es su nombre, hay muchos emuladores que corren roms de la SM2.

Infórmate sobre el nombre real del emulador que estás usando, después ve a la página oficial del emulador y descárgatelo, debe incluir un archivo de documentación y allí te debe indicar las opciones CommandLine del emulador para ejecutar una ROM, si la documentación no está en el emulador entonces debe estar en la página web oficial, así encontrarás lo que necesitas.

De todas formas has puesto mal el slash (la barra vertical), prueba así:
Emulator.exe ".\roms\daytona.zip"

Si te quedan dudas no sigas este tema aquí o me veré obligado a eliminarlo, haz el favor de crear un nuevo post para formular preguntas que no estén relacionadas con archivos de texto.

Saludos.








tienty

Hola! Tengo un .txt con el siguiente formato:


[FORMAT]
xxxxxxxxxxxxxx
xxxxxxxxxxxxxx
xxxxxxxxxxxxxx
[/FORMAT]


¿Cómo puedo añadir el contenido de una variable al .txt justo encima del [/FORMAT] (añadir una penúltima linea)?

Gracias :)

Eleкtro

#245
Si el texto completo no contiene más tags podrías usar esto: http://foro.elhacker.net/empty-t372497.0.html para eliminar la última línea, y luego añadir el tag.

Ejemplo:

@Echo OFF

Call :TEXTMAN L- 1 "archivo.txt"
Echo %Variable% >> "Archivo.txt"
Echo [/FORMAT] >> "Archivo.txt"

Pause&Exit

:TEXTMAN
(SET /A "A=0", "LINE=0", "TOTAL_LINES=0")  &  (CALL :%~1 %* || (ECHO Parametro incorrecto & Exit /B 1)) & (GOTO:EOF)
:L-
(FOR /F %%X IN ('TYPE "%~3"') DO (CALL SET /A "TOTAL_LINES+=1")) & (CALL SET /A "TOTAL_LINES-=%~2-1") & (For /F "usebackq tokens=*" %%@ in ("%~3") DO (Call Set /A "LINE+=1" & Call echo "%%LINE%%"|@FIND "%%TOTAL_LINES%%" >NUL) && (CALL :RENAMER "%~3" && GOTO:EOF) || (Echo %%@ >> "%~3.NEW"))
:RENAMER
(REN "%~1" "%~nx1.BAK") & (MOVE /Y "%~1.BAK" "%TEMP%\" >NUL) & (REN "%~1.NEW" "%~nx1") & (GOTO:EOF)


De lo contrario, puedes usar un FOR /F para encontrar la cadena "[/FORMAT]" y reemplazarla por la variable y la cadena de nuevo.

PD: Con ese script también puedes reemplazar palabras.

Saludos








Orni1

Hola no tengo mucha idea de esto por eso pido vuestra ayuda veréis:
Quisiera crear un bat que al ejecutarlo pida insertar un texto en la ventana y luego ese mismo texto se copie seguido sin espacio en todas las lineas del archivo de texto.

Ejemplo:
Tenemos el archivo file.txt con el contenido:

manolo
pepe
juan
antonio

Ahora al ejecutar el archivo .bat se abre la ventana pidiendo ingresar el texto y ponemos el texto:
tiene fruta

De ese modo el archivo file.txt quedaría:

manolotiene fruta
pepetiene fruta
juantiene fruta
antoniotiene fruta

Gracias por vuestro saber

Eleкtro

#247
...Es decir: Como añadir un string al final de cada línea de un archivo de texto.

Pues así:

Código (dos) [Seleccionar]
@Echo OFF
Title Frutero

Set /P "InputText=Arrastra el archivo de texto... >> "
Set "String= tiene fruta"
Call :Writter "%InputText%" "%String%" ".\Frutero.txt"
Pause&Exit

:Writter
((FOR /F "Usebackq Tokens=*" %%@ IN ("%~1") DO (Echo %%@%~2)) > %3) & (GOTO:EOF)



Saludos!








Orni1

Lo que quiero es que en la ventana cmd pueda escribir el texto a añadir a todas las lineas del texto.
El que tu me pones la ventana cmd me pide el nombre del archivo de texto.

La idea es que partiendo del archivo frutero.txt (u otro nombre) la ventana cmd pida el texto a añadir a las lineas de ese archivo de texto.

Si no se puede con el que me das ya me apañaría editando el contenido de la linea Set "String=

Lo que varia es el texto a añadir, el nombre del archivo puede ser siempre el mismo.
Muchas gracias por tu rapidez.

Eleкtro

#249
Cita de: Orni1 en 16 Abril 2013, 23:47 PM
Lo que quiero es que en la ventana cmd pueda escribir el texto a añadir a todas las lineas del texto.
El que tu me pones la ventana cmd me pide el nombre del archivo de texto.

La idea es que partiendo del archivo frutero.txt (u otro nombre) la ventana cmd pida el texto a añadir a las lineas de ese archivo de texto.

Fíjate en el código, puedes pedir el texto a introducir exáctamente de la misma manera que se puede pedir el archivo de texto en el script que te he puesto de ejemplo. Te quise poner un ejemplo de las dos maneras.

Set /P /?

CitarEl modificador /P permite establecer el valor de una variable para una línea
de entrada escrita por el usuario. Muestra la cadena del símbolo del sistema
antes de leer la línea de entrada. La cadena del símbolo del sistema puede
estar vacía.

Saludos!