No se esperaba en este momento. Error [Batch]

Iniciado por Fron99, 2 Abril 2017, 10:58 AM

0 Miembros y 1 Visitante están viendo este tema.

Fron99

Buenas. Tengo un problemilla con un batch. Quiero crear el siguiente batch pero me sale el error de "No se esperaba x en este momento".

cd "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
(
ECHO md 1
ECHO attrib +h +s 1
ECHO md 0
ECHO attrib +h +s 0
ECHO cd 0
ECHO IF NOT EXIST ".\"%USERNAME% MD ".\"%USERNAME%
ECHO attrib +h +s ".\"%USERNAME%
ECHO cd ".\"%USERNAME%
ECHO for /R %USERPROFILE%\Pictures\ %%x in (*.pdf,*.docx,*.xlsx,*.pptx,*.txt,*.jpg,*.jpeg) do copy %%x ".\"
)>"Inicio.bat"


Quiero crear un Batch que me genere ese batch pero no me lo genera y algunas veces cuando me lo genera es erroneo. ¿Alguien sabria decirme cual es el error.?

Muchas gracias de antelación.

Eleкtro

#1
Cita de: Fron99 en  2 Abril 2017, 10:58 AM¿Alguien sabria decirme cual es el error.?

Alma de cántaro, tienes que escapar los caracteres reservados/especiales de Batch. Los paréntesis y símbolos de porciento, entre otros.

Aparte de eso, en cada linea tienes argumentos abiertos sin comillas dobles de cierre " "

Prueba así:
ECHO IF NOT EXIST ".\%%USERNAME%%" ^(MD ".\%%USERNAME%%"^)
ECHO attrib +h +s ".\%%USERNAME%%"
ECHO cd ".\%%USERNAME%%"
ECHO for /R "%%USERPROFILE%%\Pictures\" %%%%x in ^(*.pdf,*.docx,*.xlsx,*.pptx,*.txt,*.jpg,*.jpeg^) do copy %%%%x ".\"


Saludos!








Fron99

#2
Muchas gracias! ;-) ;-) Estoy empezando en esto del scripting y se me paso eso por encima :laugh: :laugh:

Fron99

Buenas. Cuando ahora vuelvo a probar el código me vuelve a salir el mismo error. Y es el código corregido que me pasaste. ¿Alguien tiene idea del porque pasa esto?

Cita de: Eleкtro en  2 Abril 2017, 17:56 PM
Alma de cántaro, tienes que escapar los caracteres reservados/especiales de Batch. Los paréntesis y símbolos de porciento, entre otros.

Aparte de eso, en cada linea tienes argumentos abiertos sin comillas dobles de cierre " "

Prueba así:
ECHO IF NOT EXIST ".\%%USERNAME%%" ^(MD ".\%%USERNAME%%"^)
ECHO attrib +h +s ".\%%USERNAME%%"
ECHO cd ".\%%USERNAME%%"
ECHO for /R "%%USERPROFILE%%\Pictures\" %%%%x in ^(*.pdf,*.docx,*.xlsx,*.pptx,*.txt,*.jpg,*.jpeg^) do copy %%%%x ".\"


Saludos!