Ms-Dos - Bat que copie y mueva archivos con parametros

 
Vista:

Bat que copie y mueva archivos con parametros

Publicado por rubens (4 intervenciones) el 19/02/2017 19:25:46
Hola, necesito ayuda con un .bat, a ver si podeis ayudarme
Tengo que hacer un .bat el cual reciba 3 parametros, si recibe más o menos parametros dará error y finalizará, y si el número de parámetros es correcto hará una de las siguientes opciones en función del tercer parámetro.
Si el tercer parametro vale copiar se copiará el fichero indicado como primer parametro al directorio indicado como segundo parametro. Se debe comprobar antes que el fichero y directorio existen, sino es así dará error y finalizara.
La siguiente opción es lo mismo que antes pero ahora con el valor mover, y por último si el tercer parametro no vale ninguna de las dos opciones anteriores error, indicando que la sintaxis no es correcta.

Cada vez que lo ejecuto me hace esto si le pongo copiar o mover.

1 archivo(s) copiado(s)
La sintaxis del comando no es correcta.
La sintaxis no es correcta

Así lo tengo ahora mismo, y no se donde estoy fallando. Lo que si parece hacer bien es el if not

Código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
 
:Inicio
 
set a=copiar
set b=mover
 
if #%3# == #%a%# goto copiar
if #%3# == #%b%# goto mover
if not #%3# == ## goto error
 
:copiar
xcopy %1 %2 /r /s
 
:mover
move %1 %2 /r /s
 
:error
echo La sintaxis no es correcta
 
:fin

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Bat que copie y mueva archivos con parametros

Publicado por Antoni Masana (811 intervenciones) el 20/02/2017 06:33:43
Te faltan un par de saltos y te pulo un poco el proceso.

Tienes dos Opciones:

La clasica:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@echo off
if #%4# == ## goto error
if #%3# == ## goto error
if #%2# == ## goto error
if #%1# == ## goto error
 
if not exist %1 goto error
 
if #%3# == #copiar# goto copiar
if #%3# == #mover# goto mover
 
:copiar
    xcopy %1 %2 /r /s
    goto Fin
 
:mover
    move %1 %2 /r /s
     goto Fin
 
:error
    echo La sintaxis no es correcta
 
:fin


La avanzada.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
if #%4# == ## goto error
if #%3# == ## goto error
if #%2# == ## goto error
if #%1# == ## goto error
 
if not exist %1 goto error
 
if #%3# == #copiar# goto copiar
if #%3# == #mover# goto mover
 
:copiar
    xcopy %1 %2 /r /s
    goto :EOF
 
:mover
    move %1 %2 /r /s
     goto :EOF
 
:error
    echo La sintaxis no es correcta

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Bat que copie y mueva archivos con parametros

Publicado por rubens (4 intervenciones) el 20/02/2017 18:10:16
Muchas gracias me funcionó, pero creo que hay algo que aún falla, el tercer parametro tiene que dar error si el valor no se corresponde con copiar o mover, y en este caso si le doy un valor diferente copia igual, estuve intentando poner un if not pero no funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Bat que copie y mueva archivos con parametros

Publicado por rubens (4 intervenciones) el 20/02/2017 18:59:10
La opción de mover tampoco funciona, solo me copia y dándole más parametros de 3 lo mismo. No entiendo porque
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Bat que copie y mueva archivos con parametros

Publicado por Antoni Masana (811 intervenciones) el 21/02/2017 06:49:59
Si hay un par de pifias.

La línea 8 verifica que exista el destino.

Modificada líneas 12 - Faltaba el GOTO ERROR
Modificada líneas 18 - Estaban mal los parámetros.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
if #%4# == ## goto error
if #%3# == ## goto error
if #%2# == ## goto error
if #%1# == ## goto error
 
if not exist %1     goto error
if not exist %2\nul goto error
 
if #%3# == #copiar# goto copiar
if #%3# == #mover#  goto mover
                    goto error
:copiar
    xcopy %1 %2 /r /s
    goto :EOF
 
:mover
    move %1 %2 /y
     goto :EOF
 
:error
    echo La sintaxis no es correcta

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Bat que copie y mueva archivos con parametros

Publicado por rubens (4 intervenciones) el 21/02/2017 19:43:00
No lo entiendo, sigue sin ir y ahora no me hace nada, me salta al error continuamente ponga lo que ponga
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Bat que copie y mueva archivos con parametros

Publicado por Antoni Masana (811 intervenciones) el 22/02/2017 12:17:26
Si le quitas el ECHO OFF veras que hace el BAT.

¿para que te complicas tanto la vida para hacer un simple COPY o un MOVE?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar