Pequeño problema con sencillo codigo batch

Buenas, estoy intentando escribir el siguiente código en una sola línea;

cd /

md alumnos

Y se puede con cd / & md alumnos

Pero necesito hacerlo con el equivalente a &, que no sé cuál es, y funciona a medias con "cd / md alumnos", pero luego necesito entrar e alumnos y ahí crear "tema1", "tema2", etc, y eso sólo puedo usando "&", ya que en caso contrario sufro error de sintaxis o no encuentra cd el directorio. Y sip, he probado a dar la dirección con cd /alumnos, cd C:\alumnos y demás, pero como no use "&" para separar las órdenes no hay manera

En cambio en Vertical si puedo (y es muchísimo mejor, no entiendo la manía del profesor de ponerlo en horizontal...)

cd /

md alumnos

cd /alumnos

md tema1 tema2 tema3

Pero nada, en horizontal no hay manera sin "&"

¿Alguna idea? Es para un examen de una amiga para mañana, y no tengo muchas nociones de programación, sé lo justo para haber sobrevivido sin haberme puesto en serio con ello

Gracias y Un Saludo
Creo que no he entendido cuál es el problema...

¿Quieres concatenar varias instrucciones en una sola línea, pero no quieres usar el ampersand para separarlas? ¿O como es la cosa? Porque sin usar ''&'' no vas a poder indicar varias órdenes en la misma línea...
es que tienes que usar & para separar cada comando de la linea, se podía otro símbolo pero solo cambiaba creo en que solo continuaba si el anterior había tenido éxito.
El CMD te está devolviendo error de sintaxis porque efectivamente tienes varios errores de sintaxis, simplemente. [qmparto]

Por partes:
- Primero, en entornos Windows o DOS no se usa la barra normal (/) se usa la barra invertida (\). La barra normal es para entornos *NIX.
- Segundo, tienes el símbolo and (&) que sirve para concatenar comandos en una misma linea, y el doble and (&&) que añade la condición de que sólo el siguiente comando se ejecuta si el anterior ha sido satisfactorio.
- Tercero, no puedes generar varios directorios de un plumazo sin repetir el comando MD o MKDIR. Puedes generar una ruta de directorios completa (.\dir1\dir2\dir3...) pero no 3 directorios dentro de un directorio (.\dir1, .\dir2, .\dir3). Si quieres crear TEMA1, TEMA2 y TEMA3 dentro de ALUMNOS, tendrás que hacer MD TEMA1 & MD TEMA2 & MD TEMA3. Si eso no le gusta al profe, tendrás que usar el comando FOR para hacer un bucle:
FOR /L %%N IN (1,1,3) DO MD "TEMA%%N"

- Por último, que no sé si estás teniendo en cuenta. Cada vez que usas la barra (\), le estás diciendo al intérprete de comandos que se tiene que dirigir a la raíz de la unidad. Si lo que quieres es indicarle que la ruta que quieres empieza en el lugar donde te encuentras, tienes que usar un punto (.). No es lo mismo usar CD ALUMNOS & MD .\TEMA1, que te creará un directorio llamado TEMA1 en ALUMNOS, a poner CD ALUMNOS & MD \TEMA1 que te creará un directorio en la ráiz de la unidad en la que te encuentres.
JuananBow escribió:El CMD te está devolviendo error de sintaxis porque efectivamente tienes varios errores de sintaxis, simplemente. [qmparto]

Por partes:
- Primero, en entornos Windows o DOS no se usa la barra normal (/) se usa la barra invertida (\). La barra normal es para entornos *NIX.
- Segundo, tienes el símbolo and (&) que sirve para concatenar comandos en una misma linea, y el doble and (&&) que añade la condición de que sólo el siguiente comando se ejecuta si el anterior ha sido satisfactorio.
- Tercero, no puedes generar varios directorios de un plumazo sin repetir el comando MD o MKDIR. Puedes generar una ruta de directorios completa (.\dir1\dir2\dir3...) pero no 3 directorios dentro de un directorio (.\dir1, .\dir2, .\dir3). Si quieres crear TEMA1, TEMA2 y TEMA3 dentro de ALUMNOS, tendrás que hacer MD TEMA1 & MD TEMA2 & MD TEMA3. Si eso no le gusta al profe, tendrás que usar el comando FOR para hacer un bucle:
FOR /L %%N IN (1,1,3) DO MD "TEMA%%N"

- Por último, que no sé si estás teniendo en cuenta. Cada vez que usas la barra (\), le estás diciendo al intérprete de comandos que se tiene que dirigir a la raíz de la unidad. Si lo que quieres es indicarle que la ruta que quieres empieza en el lugar donde te encuentras, tienes que usar un punto (.). No es lo mismo usar CD ALUMNOS & MD .\TEMA1, que te creará un directorio llamado TEMA1 en ALUMNOS, a poner CD ALUMNOS & MD \TEMA1 que te creará un directorio en la ráiz de la unidad en la que te encuentres.


[plas] [plas]
JuananBow escribió:El CMD te está devolviendo error de sintaxis porque efectivamente tienes varios errores de sintaxis, simplemente. [qmparto]

Por partes:
- Primero, en entornos Windows o DOS no se usa la barra normal (/) se usa la barra invertida (\). La barra normal es para entornos *NIX.
- Segundo, tienes el símbolo and (&) que sirve para concatenar comandos en una misma linea, y el doble and (&&) que añade la condición de que sólo el siguiente comando se ejecuta si el anterior ha sido satisfactorio.
- Tercero, no puedes generar varios directorios de un plumazo sin repetir el comando MD o MKDIR. Puedes generar una ruta de directorios completa (.\dir1\dir2\dir3...) pero no 3 directorios dentro de un directorio (.\dir1, .\dir2, .\dir3). Si quieres crear TEMA1, TEMA2 y TEMA3 dentro de ALUMNOS, tendrás que hacer MD TEMA1 & MD TEMA2 & MD TEMA3. Si eso no le gusta al profe, tendrás que usar el comando FOR para hacer un bucle:
FOR /L %%N IN (1,1,3) DO MD "TEMA%%N"

- Por último, que no sé si estás teniendo en cuenta. Cada vez que usas la barra (\), le estás diciendo al intérprete de comandos que se tiene que dirigir a la raíz de la unidad. Si lo que quieres es indicarle que la ruta que quieres empieza en el lugar donde te encuentras, tienes que usar un punto (.). No es lo mismo usar CD ALUMNOS & MD .\TEMA1, que te creará un directorio llamado TEMA1 en ALUMNOS, a poner CD ALUMNOS & MD \TEMA1 que te creará un directorio en la ráiz de la unidad en la que te encuentres.

Venía a ponerle esto jajajajaj es un ejercicio del comando For claramente
5 respuestas