Archivos bat

Hola soy nuevo en el foro, la cosa es que tengo un ejercicio, y es que en un archivo .bat tengo como que crear una "papelera" propia, en la que si el usuario indica un fichero y existe, éste se copie en esa papelera y si no exista que ponga "El fichero no existe".
Si me pudierais echar una mano, yo tengo alguna idea pero no termino conseguirlo.
El ejercicio basicamente es este:
"Crea un fichero por lotes llamado COPIAME.BAT, de manera que tengamos que suministrarle un parámetro que será el nombre de un archivo. Se debe comprobar si el archivo existe, en caso de que exista lo debe copiar en la carpeta [directorio de trabajo]\papelera (que ya debe existir previamente) y salir. En caso que no exista debe salir un mensaje indicando
“El archivo no existe” y quedar pausado. "

En la pagina esta el codigo de solucion pero no me funciona, el codigo seria el siguiente:
@echo off
IF EXIST %1 (
COPY %1 papelera/%1
)
IF NOT EXIST %1 (
ECHO "El archivo no existe"
)
pause

Aver si me podeis ayudar y os lo agradeceria de anteman, muchas gracias :D
Al margen de lo mucho que se podría mejorar el programa, tienes un par de errores:
-Las rutas en Windows se especifican con \, no con /
-No necesitas poner las comillas para encerrar el ECHO. Es un poco arcaico su funcionamiento pero sin comillas funciona.
-Si no metes el PAUSE dentro de la segunda condición, el script acaba siempre pausado. Ese creo que no es el enunciado.

@ECHO OFF

IF EXIST %1 ( COPY %1 .\Papelera\%1 )
IF NOT EXIST %1 (
   ECHO El archivo no existe
   PAUSE
)
[quote="JuananBow"]Al margen de lo mucho que se podría mejorar el programa, tienes un par de errores:
-Las rutas en Windows se especifican con \, no con /
-No necesitas poner las comillas para encerrar el ECHO. Es un poco arcaico su funcionamiento pero sin comillas funciona.
-Si no metes el PAUSE dentro de la segunda condición, el script acaba siempre pausado. Ese creo que no es el enunciado.

Igualmente puse lo que tu pusistes y al abrirlo lo que hace es que se cierra rapidamente.
Aver si me puedes ayudar con esto, que ando un poco liado estudiandolo.
Gracias por contestar.
Claro que se cierra automáticamente, porque tienes que especificar forzosamente un parámetro %1; y aquí es donde vienen las carencias del programa:
-Si el archivo existe: Lo copia a un directorio llamado "Papelera" desde donde se ejecuta el script. Si el directorio no existe: error.
-Si el archivo no existe: Avisa "El archivo no existe" y se pausa.
-¿Y qué pasa si no especificas un parámetro %1? Pues la consola te devuelve "La sintaxis del comando no es correcta." y se cierra. ¿Por qué? Pues porque intenta ejecutar la orden IF EXIST %1 ( etc...) siendo %1 nulo; con lo que tienes un error de sintaxis porque la condición IF siempre tiene que compararse contra un valor que exista.

Imagen
[quote="JuananBow"]Claro que se cierra automáticamente, porque tienes que especificar forzosamente un parámetro %1; y aquí es donde vienen las carencias del programa:
-Si el archivo existe: Lo copia a un directorio llamado "Papelera" desde donde se ejecuta el script. Si el directorio no existe: error.
-Si el archivo no existe: Avisa "El archivo no existe" y se pausa.
-¿Y qué pasa si no especificas un parámetro %1? Pues la consola te devuelve "La sintaxis del comando no es correcta." y se cierra. ¿Por qué? Pues porque intenta ejecutar la orden IF EXIST %1 ( etc...) siendo %1 nulo; con lo que tienes un error de sintaxis porque la condición IF siempre tiene que compararse contra un valor que exista.

Bueno y como consigo eso? estuve probando pero no consigo hacerlo :(
4 respuestas