Crear Varias carpetas y Sub-Carpetas

Iniciado por P3NDULO, 23 Agosto 2019, 03:07 AM

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

P3NDULO

Buenas.
Cree este diminuto script, en mi trabajo hay c=que realizar barias carpetas, con algunas normas.
Por ejemplo.

La fecha es AAAAMMDD y numero de incidente
Las carpetas deben estar dentro de un laboratorio
cada entrega depende de que impacta (Data, Reports, App, etc)
Le coloque para que al momento de colocar los datos no esten en blanco, con los if.
Seguro existen maneras menos artesanales, pero asi me funciona  :rolleyes: :rolleyes: :rolleyes:
Se los dejo aquí, para el que necesite de alguna parte, pues lo use, y si alguno lo quiere mejorar, y compartir...

@ECHO off
title Carpetas Entrega             Fcoelho 0.2
color f1
MODE CON COLS=50 LINES=15
set bausch="bau"
:menu
cls 
SET /P labora= Nombre de Laboratorio :
    REM con el siguiente if verificamos si colocaron algun dato
        if not defined labora (
            set torio= NuevoLaBoratorio
            ECHO  No tiene nombre de laboratorio.
            ECHO  Se creara carpeta NuevoLaBoratorio
        ) else (
            set torio=%labora%
        )
    echo.

REM Se convierte la fecha en el formati invertido y sin las divisiones
set DD=%DATE%
set fecha=%DD:/=%
set AAMMDD=%fecha:~-4%^%fecha:~2,2%^%fecha:~0,2%
:menu2
SET /P report= Colocar Numero Incidente :
    REM If para validar el numero de reporte
        if not defined report (
            ECHO Debes colocar numero de reporte
            goto menu2
        ) else (
            set numero=%report%
        )

[color=blue]:opcion
ECHO.
ECHO  ******* Tipo de Entrega *********
ECHO _ 1.Data
ECHO _ 2.APP_WEB
ECHO _ 5.Reporte
ECHO _ 0. Ninguna de las anteriores:
ECHO.
SET /P imp=  OPCION :



REM Validar que valor colocan
    if not defined imp (
        echo Colocar algun Caracter
        goto opcion
    ) else (
        if %imp% == 1 goto Data
        if %imp% == 2 goto app
        if %imp% == 5 goto repor
        echo Recuerde colocar valores validos
        pause>nul
        goto opcion
    )[/color]

:Data
md "Entregas Soporte 2"\"%torio%"\"%AAMMDD%"_Incidente_"%numero%"\"01.DataBaseUpdate"\"SELECT DATA,VERSION FROM _DBVERSION"\Data\
goto carpeta

:app
md "Entregas Soporte 2"\"%torio%"\"%AAMMDD%"_Incidente_"%numero%"\"02.APP_WEB"\"entities"\
md "Entregas Soporte 2"\"%torio%"\"%AAMMDD%"_Incidente_"%numero%"\"02.APP_WEB"\"JS"\"Controllers"\
goto carpeta2

:repor
md "Entregas Soporte 2"\"%torio%"\"%AAMMDD%"_Incidente_"%numero%"\"01.DataBaseUpdate"\"SELECT DATA,VERSION FROM _DBVERSION"\Reportes\
md "Entregas Soporte 2"\"%torio%"\"%AAMMDD%"_Incidente_"%numero%"\"05.Reports"\
goto carpeta2

:otro
ECHO Gracias por estar aqui.
ECHO Desea Intentar otra vez.
ECHO 1 . Si (Puedes Utilizar la letra Y o S, tambien el numero 1)
ECHO 2 . No (Puedes Utilizar la letra N, tambien el numero 2,0)
set /P sal=
if %sal% == 1
goto menu
if %sal% == Y
goto menu
if %sal% == y
goto menu
if %sal% == S
goto menu
if %sal% == s
goto menu
if %sal% == N
exit
if %sal% == n
exit
if %sal% == 0
exit
if %sal% == 2
exit


:carpeta
cls
ECHO.
ECHO    ********************
ECHO    *                  *
ECHO    * Carpetas Creadas *
ECHO    *                  *
ECHO    ********************
ECHO.
pause>nul
explorer.exe "Entregas Soporte 2"\"%torio%"\"%AAMMDD%"_Incidente_"%numero%"\"01.DataBaseUpdate"\"SELECT DATA,VERSION FROM _DBVERSION"\Data\
Exit

:carpeta2
cls
ECHO.
ECHO    ********************
ECHO    *                  *
ECHO    * Carpetas Creadas *
ECHO    *                  *
ECHO    ********************
ECHO.
pause>nul
explorer.exe "Entregas Soporte 2"\"%torio%"\"%AAMMDD%"_Incidente_"%numero%"\
Exit


REM :BD sqlcmd -S Miservidor\nombredeinstancia con eso puedo conetarme y colocar los comandos hasta colocar GO






Espero le ayude a alguien, y disculpen, mi manera de hacerlo jejejeje

:silbar: :silbar: ;-)

Modifique para que esten en las opciones, y coloquen valores específicos, gracias por el comentario 
Citar@string Manolo

@XSStringManolo

if %sal% == 1
    goto menu
    if %sal% == Y
    goto menu
    if %sal% == y
    goto menu
    if %sal% == S
    goto menu
    if %sal% == s
    goto menu
    if %sal% == N
    exit
   
    if %sal% == n
    exit
    if %sal% == 0
    exit
   
    if %sal% == 2
    exit

Si se pulsa cualquier otra letra se continua la ejecución del programa no?
Se puede poner:
if

else if

else if

else if

else

Así te aseguras que no se haga nada que el usuario no quiere si por ejemplo le da a la M porque está al lado de la N, o porque lee mal.
O pones un:
goto otro
después de los if, y ya lo solucionas.

Seguro que a alguien le resulta útil! Leí a mucha gente preguntando como hacer cosas parecidas.