Comunidad Underground Hispana  

Retroceder   Comunidad Underground Hispana > Programacion > Batch / Bash-Shell

Like Tree1Me Gusta
  • 1 Post By cuban

Respuesta Crear Nuevo Tema
 
Compartir en twitter LinkBack Herramientas Desplegado
Antiguo 03-mar-2015, 06:12   #1
Recien llegado
 
Fecha de Ingreso: marzo-2015
Amigos 0
Mensajes: 2
Gracias: 1
Agradecido 0 veces en 0 mensajes.
Thumbs up Ayuda mapear unidades de red .bat

Estimados podrían ayudarme con un tema, como puedo lograr obtener la (Letra) de una unidad de red según su ruta para ser mapeada con un .bat?? me explico, tengo 3 unidades de red para ser mapeadas mi problema es que no todos los usuarios manejan las mismas unidades de red por ejemplo un usuario tiene (X: \\Server1\recucurso1) y para otro es (M: \\Server1\recurso1) Estaba pensando en copiar la información unidad y ruta en un .txt y luego llamar ese .txt para extraer la unidad pero no lo he logrado, crees que podrían ayudarme.
Atte
asta
Gracias

Última edición por Fashion; 24-jul-2015 a las 01:19
asta está desconectado   Responder Citando
Antiguo 09-mar-2015, 16:47   #2
Mod recien llegado
 
Fecha de Ingreso: enero-2010
Amigos 10
Mensajes: 1.408
Gracias: 646
Agradecido 372 veces en 323 mensajes.
Predeterminado Respuesta: Ayuda mapear unidades de red .bat

No te entendi bien.

A ver si es correcto, tienes varios equipos(digamos 10 de ejemplo), en cada equipo tienes montado unidades de red(en cada equipo como es lógico es una letra diferente)

Puedes utilizar el metodo de comprobar si existe la unidad, letra a letra, o mediante un bucle for. No se cuales son tus conocimientos por lo que intentaré de ser lo más explicativo posible

Metodo 1
Código:
@echo off
:unidad_a
if exist a:\  goto sia else goto noa
:si
 echo existe unidad a
 pause
exit
:noa 
 if exist b:\ goto sib else goto nob
:sib
  echo existe unidad b
:nob
.......etc
  
de esta forma lo haces letra a letra

Opcion 2
Código:
@echo off
call existe_unidad a
call existe_unidad b
call existe_unidad c
call existe_unidad d
call existe_unidad e
call existe_unidad f
.....etc
pause
exit 
:existe_unidad
  set "unid=%1"
  if not exist %unid% goto :EOF
  ::Existe la unidad, por lo que realizo accion

goto :EOF
  
Tercera forma
Código:
@echo off
   Set "unidades = a,b,c,d,e,f,g,h,y,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"  
   For %%a In (%unidades%) Do (
      if exist %%a call :existe_unidad %%a
   )
:existe_unidad
  set "unid=%1"
  if not exist %unid% goto :EOF
  ::Existe la unidad, por lo que realizo accion

goto :EOF
  
Esto es para detectar unidades.
Tambien tienes otro metodo recordando ahora, con el comando wmic

Código:
  wmic logicaldisk get caption,providername,drivetype,volumename
  
Ahora lo puedes unir con el for, ya que el for puede prosesar resultado de operaciones de comandos como si fuera la variable.

PD: No se si es lo que estabas buscando, cualquier cosa dime y te responderé
asta le gusta esto.
__________________
cuban está desconectado   Responder Citando
El Siguiente Usuario Agradeció a cuban Por Este Mensaje:
asta (12-mar-2015)
Antiguo 12-mar-2015, 08:08   #3
Recien llegado
 
Fecha de Ingreso: marzo-2015
Amigos 0
Mensajes: 2
Gracias: 1
Agradecido 0 veces en 0 mensajes.
Predeterminado Respuesta: Ayuda mapear unidades de red .bat

Muchas gracias cuban, es una posibilidad que tenia en cuenta pero no sabia como lograr, de todos modos lo e realizado de la siguiente manera, dejo el comando para la comunidad.

Lo que se realiza es extraer información de los discos lógicos, en este caso name (Unidad) y ProviderName (Ruta) lo que posteriormente se guarda generando un archivo de texto (volumen.txt), luego obtengo el primer parametro de la linea donde encuentre la palabra "Palabra a encontrar" que en este caso seria la unidad en volumen.txt guardandola en una variable y finalmente realizo el mapeo de las unidades.

Cita:
@echo off
echo Creando volumen.txt . . .
ping localhost -n 3 >nul
wmic logicaldisk get name, ProviderName | more >volumen.txt
echo Proceso terminado exitosamente.
ping localhost -n 3 >nul
cls

ping localhost -n 3 >nul
cls
echo Buscando unidad [?]: \\Server\Recurso para ser mapeada . . .
ping localhost -n 3 >nul
FOR /f "tokens=1 delims=:" %%a in ('findstr "Palabra a encontrar" volumen.txt') do (set var2=%%a)
echo Unidad de ruta encontrada %var2%:
ping localhost -n 3 >nul
NET USE %var2%: /d
ping localhost -n 3 >nul
echo.

echo Cambio de mapeos de servidores en la Unidad %var2%:
NET USE %var2%: \\Newserver\Recurso
echo Mapeo realizado exitosamente
ping localhost -n 6 >nul
cls
del /f /q "volumen.txt"
exit

Última edición por asta; 12-mar-2015 a las 08:27
asta está desconectado   Responder Citando
Respuesta

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks están Activado
Pingbacks están Activado
Refbacks están Activado



Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda .bat InmortalGod Seguridad 0 22-jun-2012 23:51
Quien me ayuda con un .bat RIKO Batch / Bash-Shell 4 30-dic-2011 21:30
Ayuda con .bat [Corregir] wsp_wsp Batch / Bash-Shell 4 11-sep-2011 17:26
Ayuda con mi .bat copiar archivos desde USB wsp_wsp Batch / Bash-Shell 2 01-sep-2011 11:54



Portal Hacker
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0