Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: davoker en 11 Junio 2016, 21:17 pm



Título: [Pregunta tipica] Que falla en este script?
Publicado por: davoker en 11 Junio 2016, 21:17 pm
Buenas, este script le funciona a un compi pero a mi no, de hecho tengo abandonado el batch y ya apenas recuerdo, solo puedo buscar informacion y no doy con el fallo, pongo el script:

Código:
@echo off
md buenos
cd roms
for %r in (*.zip) do (
  echo "%%~nr"
  move "..\temporal\%%~nr.avi" "..\buenos\" /y
)
cd..
pause

Logicamente el archivo .bat va en la carpeta principal, junto a la carpeta roms y temporal, vamos que esta en su sitio.

Se ve para el que entiende que es lo que hace, pero lo explico igual, que nadie se ofenda xD

Basicamente crea una carpeta llamada "buenos", coge los videos de la carpeta temporal que tengan el mismo nombre que los archivos .zip de la carpeta "roms", y los mueve a la carpeta "buenos" que se creo al princpio.

El error que salta es "La sintaxis del comando no es correcta", uso windows 10, no se si tendra que ver, ni idea vaya, probe a ejecutarlo como administrador, a mover las carpetas y todo a diferentes sitios, por si acaso, pero nada, siempre el mismo fallo.

Alguna idea? gracias!


Título: Re: [Pregunta tipica] Que falla en este script?
Publicado por: davoker en 14 Junio 2016, 16:37 pm
Una ayudita cuando podais payos  ;D es que este script deberia funcionar, a mi colega le funciona, asi que no entiendo porque no me rula a mi, si es de lo mas sencillo, igual se me escapa algo, o se os ocurre un script parecido para hacer lo mismo no se jeje

Venga un saludin.


Título: Re: [Pregunta tipica] Que falla en este script?
Publicado por: hckcrck en 14 Junio 2016, 17:04 pm
Citar
"La sintaxis del comando no es correcta"
no te sale nada mas? haz un copy paste


Título: Re: [Pregunta tipica] Que falla en este script?
Publicado por: DarK_FirefoX en 14 Junio 2016, 17:32 pm
¿Cual sintaxis es la no correcta?

Quita el:

Código:
@echo off

Y mira a ver en que linea es la que esta saltando el error!

Salu2s


Título: Re: [Pregunta tipica] Que falla en este script?
Publicado por: hckcrck en 14 Junio 2016, 17:42 pm
Aqui esta el problema
Código:
for %r in (*.zip) do (
este es el mensaje completo que me manda la terminal
Citar
Z:\root\Escritorio>./problema.bat
Archivo no encontrado.

Error de sintaxis
Can't recognize '*.zip' as an internal or external command, or batch script.
Can't recognize 'do ' as an internal or external command, or batch script.
"%~nr"
Pulse cualquier tecla para continuar...


Título: Re: [Pregunta tipica] Que falla en este script?
Publicado por: DarK_FirefoX en 14 Junio 2016, 18:37 pm
Creo que deberías usar:

Código:
%%r

en la línea:

Código:
for %%r in (*.zip) do (

Salu2s



Título: Re: [Pregunta tipica] Que falla en este script?
Publicado por: Eleкtro en 15 Junio 2016, 00:50 am
Creo que deberías usar:

Código:
%%r

en la línea:

Código:
for %%r in (*.zip) do (

Efectivamente ese es el error.

Es imposible que a su compañero le funcione como el OP mencionó, puesto que está obligado a dar error de sintaxis por el error que comentaste.

Las variables de FOR deben ser nombradas con dos símbolos de porcentaje para poder expandirla. Solo se debe hacer lo contrario, es decir, escribir un único símbolo de porcentaje, si colocamos y ejecutamos el código directamente en una instancia abierta de la CMD.

Saludos


Título: Re: [Pregunta tipica] Que falla en este script?
Publicado por: davoker en 15 Junio 2016, 21:17 pm
Vale solucionado chavales, la cosa queda asi, porgo primero el script que fallaba:

Código:
@echo off
md buenos
cd roms
for %%r in (*.zip) do (
  echo "%%~nr"
  move "..\temporal\%%~nr.avi" "..\buenos\" /y
)
cd..
pause

Decir que en la linea
Código:
for %r in (*.zip) do (
me confundi y en vez de poner %%r puse %r, pero fue al escribirlo aqui, en el .bat estaba bien, no funcionaba, el script que ha funcionado es este:


Código:
@echo off
md buenos
cd roms
for %%r in (*.zip) do (
  echo "%%~nr"
  move /y "..\temporal\%%~nr.avi" "..\buenos\"
)
cd..
pause

El fallo estaba en
Código:
/y
, es decir, la linea mal era esta:

Código:
  move "..\temporal\%%~nr.avi" "..\buenos\" /y
La linea buena esta y la que soluciono el problema:

Código:
  move /y "..\temporal\%%~nr.avi" "..\buenos\"

El colega no lo probo, solo tenia la seguridad de que le funcionaba, hablando con el hoy se dio cuenta de que puso mal el /y y me lo comentó xD

Asi que solucionado el tema, gracias gente por la ayuda ^^