Windows 7 - letra de unidad en un archivo batch

   
Vista:

letra de unidad en un archivo batch

Publicado por Tom (2 intervenciones) el 15/11/2013 01:55:35
Necesito hacer un archivo de procesamiento por lotes (.bat) para pedirle al usuario la letra de unidad y almacenarla en alguna variable para utilizarla después, seria mas o menos:

@echo off

@echo Indica la letra de unidad: F --- (En este ejemplo el usuario indica la letra de unidad "F")


//internamente el archivo .bat almacena la letra en alguna variable, algo como:

Variablelet = (como capturo la letra que escribió el usuario? no tengo idea que poner aquí)

//seguido de eso utilizar la letra de la unidad almacenada para seguir con los procesos, algo como:

@echo Se renombrarán y eliminaran archivos

pause

Variablelet:\rename archivo1.txt archivo2.txt
Variablelet:\del archivo3.doc

@echo Operacion terminada

pause
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

letra de unidad en un archivo batch

Publicado por Antoni Masana (9 intervenciones) el 15/11/2013 10:14:10
La línea del SET pide un dato por consola y guarda en la variable DISCO.

Para tener el valor de la variable se pone entre dos simbolos %

En este ejemplo ademas verifica que existen los ficheros a tratar y si falta alguno avisa y cancela.

El ECHO. deja una línea en blanco.

El goto:EOF finaliza el BAT, es lo mismo que EXIT /B finaliza el BAT y no cierra la ventana de MSDOS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
@echo OFF
 
set /P Disco=Indica la letra de unidad:
 
IF NOT EXIST %Disco%:\archivo1.txt  goto Falta_1
IF     EXIST %Disco%:\archivo2.txt  goto Falta_2
IF NOT EXIST %Disco%:\archivo3.doc  goto Falta_3
 
   echo.
   Pause
   REN %Disco%:\archivo1.txt archivo2.txt
   DEL %Disco%:\archivo3.doc
   echo.
   echo Operacion terminada
   goto:EOF
 
:Falta_1
   echo.
   echo.*** No existe:  %Disco%:\archivo1.txt
   echo.
   echo.*** Proceso cancelado
   echo.
   goto:EOF
 
:Falta_2
   echo.
   echo.*** Existe: %Disco%:\archivo2.txt y NO se puede renombrar: %Disco%:\archivo1.txt
   echo.
   echo.*** Proceso cancelado
   echo.
   goto:EOF
 
:Falta_3
   echo.
   echo.*** No existe:  %Disco%:\archivo3.txt
   echo.
   echo.*** Proceso cancelado
   echo.
   goto:EOF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

letra de unidad en un archivo batch

Publicado por Tom (2 intervenciones) el 16/06/2015 15:18:12
Muchas gracias antoni, no había tenido oportunidad de comentarte pero funcionó perfecto, aquí el resultado de como quedó por si alguien más lo utiliza:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
:Main
@echo.
set /P Disco=Indica la letra de unidad o indica (s) para salir:
 
IF %Disco%==s goto:EOF
IF %Disco%==S goto:EOF
 
IF NOT EXIST %Disco%: goto:Message
 
goto:Process
 
:Message
@echo.
@echo La unidad USB solicitada no esta disponible
@echo.
goto:Main
 
:Process
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