ayuda con dos programas .bat

Iniciado por priapismico, 24 Enero 2015, 21:32 PM

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

priapismico

El primero:

Diseñar un bat que reciba hasta 5 parámetros con nombres de ficheros. Por cada uno de los parámetros recibidos (si los hay) nos preguntará por el texto del fichero, creándolo con Copy Con %n.

El segundo:

Copiar un conjunto de ficheros (número indeterminado) con sus líneas ordenadas en un fichero de destino. Utilizar la instrucción SET. La sintaxis de la orden será
CopiarOrd dest.txt Orig1.txt Orig2.txt Orig3.txt ...
Se debe comprobar que haya un fichero destino y que haya al menos un fichero origen. Además se verificará que los ficheros origen existen.
Al final del proceso, tras pausar y borrar la pantalla, se mostrará el fichero resultado.

Gracias de antemano!

engel lex

que no sabes? donde te trancas? que llevas hecho?

no se hacen tareas, se resuelven dudas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

¿Que buscas, orientación, o que te hagan los trabajos?.


Elementos necesarios para llevar a cabo el problema nº1:

%1 - %5
Copy CON
EQU
IF
Set /P



Elementos necesarios para llevar a cabo el problema nº2:

CLS
FOR /F
If Exists
Pause
Set
Sort
Type
|
||



Saludos.








priapismico

#3
Busco orientacion...

me han mandado una hoja con 10 ejercicios y en esos dos no sé bien como hacerlos..

en el primero: "nos preguntará por el texto del fichero, creándolo con Copy " esto es lo que no me queda claro...

Código (dos) [Seleccionar]
@echo off
:inicio
if "%1"=="" goto fin
echo que texto quiere introducir?
copy %n
:fin

Eleкtro

Aquí estás comparando """" con "", por lo tanto nunca irá a la etiqueta fin:
Código (dos,3) [Seleccionar]
@echo off
:inicio
if "%1"=="" goto fin

Debes expandir la variable de argumento para eliminar las comillas dobles adicionales.


Cita de: priapismico en 25 Enero 2015, 00:32 AMen el primero: "nos preguntará por el texto del fichero, creándolo con Copy " esto es lo que no me queda claro...

Supongo que el ejercicio se refiere a hacerlo de la siguiente manera:

Código (dos) [Seleccionar]
@Echo OFF
If "%~1" NEQ "" (Call :CreateText "%~f1")
Pause&Exit /B 0

:CreateText
Echo:Escribe el texto del archivo.
Echo:Presiona CTRL+Z para terminar.
Echo:
Copy CON "%~f1"
Goto:EOF


Saludos








priapismico

#5
Gracias por la ayuda..


@echo off
if "%~1" neq "" goto crearTexto
echo No existe el archivo
goto fin
:crearTexto
echo Escribe el texto del archivo
echo Presiona CTRL+Z para terminar
copy con "%~1"
:fin


solo me inserta texto en el primer fichero que le paso por parametro, si le paso por ejemplo, dos mas, ni me los coge..

Eleкtro

Cita de: priapismico en 25 Enero 2015, 17:11 PMsolo me inserta texto en el primer fichero que le paso por parametro, si le paso por ejemplo, dos mas, ni me los coge..
Claro, jeje, es solo un ejemplo que actua unicamente con el primer argumento.

Como te dijo el compañero @engel lex no hacemos trabajos, resolvemos dudas, de todas formas te dejé el código muy fácil...

Intenta hacerlo por ti mismo y muestra tus avances.

Aquí tienes documentación sobre el uso de las variables de argumento:
Tutorial extendido de aprendizaje Batch - By Elektro
6.1 Variables especiales (o Variables de parámetro) (o Variables de argumentos)


Y aquí más:
Parameters / Arguments | Windows CMD | SS64.com

Saludos!








priapismico

Es una hoja de 10 ejercicios en los que no entendia 2 de ellos, no estoy pidiendo que me los hagan, ni mucho menos. El profesor ni lo ha explicado, estoy volviendome loco buscando ejemplos parecidos, pq no puedo usar algunas cosas que ni sé (como el bucle for, la llamada call, etc.) tan solo ceñirme a lo que pone. Hay que entregarla a las 22.05 de esta noche y solo queria ayuda, si no sé cómo juntar varios parámetros.. y tampoco se responde a eso.. ya me dirás... Aún así, gracias por vuestro tiempoy en otras dudas nos encontraremos!



@echo off
if "%~1" neq "" goto crearTexto
echo No existe el archivo
goto fin
:crearTexto
echo Escribe el texto del archivo
echo Presiona CTRL+Z para terminar
copy con "%~1"
:fin





@echo off
:inicio
if "%1"=="" goto fin
if exist %1nul goto copiar
goto siguiente
:copiar
copy %* %2
:siguiente
shift
goto inicio
:fin