domingo, 11 de septiembre de 2011

Compartir carpetas en discos extraibles

Lo que ocurre normalmente es lo siguiente:
Si el disco extraible tiene formato ntfs, windows recuerda siempre la configuracion de las carpetas compartidas.
Si el disco extraible tiene formato fat32, windows se olvida de los recursos compartidos luego de un reinicio.

O sea que, en los casos en que el disco es extraido periodicamente, es conveniente que el formato sea ntfs.
Sin embargo ocurre un segundo problema y es el cambio de letra. Si windows cambiara la letra del dispositivo, entonces el recurso deja de estar compartido.
Una solucion a ambos problemas y que sirve para cualquiera de los dos sistemas (ntfs, fat32) es el siguiente script o archivo batch (extension bat):

El que sigue es un ejemplo para el caso de un pendrive cuyo nombre de volumen (1) es Sistemas y la carpeta a compartir se llama Ventas y está en el raiz del disco extraible, por ejemplo: C:\Ventas

echo ESTE SCRIPT REQUIERE QUE EXISTA UN DIRECTORIO C:\Compartir !!!!!!
cd c:\compartir
echo list volume | diskpart | find /i "Sistemas" > prueba.txt
for /f "tokens=3" %%i in (prueba.txt) do net share Ventas=%%i:\Ventas /unlimited

Podria utilizarse la carpeta de sistema Temp, en lugar c:\Compartir y de ese modo se evita tener que crear dicha carpeta. Cuestion de gustos.
La necesidad del comando cd c:\compartir ocurre porque no logré que el comando "for" interprete c:\compartir\prueba.txt. Y como al ejecutar el script dentro del directorio puede usarse una referencia relativa (y no absoluta) al archivo prueba.txt, ya no se presenta el problema (2)

El parametro tokens=3 hace que "for" lea la tercer palaba de la primera linea del archivo prueba.txt. Y como la cantidad de lineas que contiene el archivo es una sola, el for se ejecuta una sola vez, obteniendo asi la letra de la unidad extraible (3)
El parametro /i permite olvidarse de si el nombre del volumen esta en mayusculas o minusculas.
Notas:
(1) para cambiar el nombre de volumen de un disco hay que hacer clic con botón derecho sobre el disco (en Mi Pc), luego propiedades y luego en la pestaña general, en el cuadro de texto que aparece arriba del todo (ver el cursor) se puede escribir el nombre de volumen.

(2) Es muy probable que un parámetro resuelva este comportamiento. La verdad es que hice un par de pruebas con parametros y simbolos, pero, antes que lidiar con las mañas de los comandos, es mas simple el corte por lo sano, siempre que funcione :-D

(3) Eso es asi siempre y cuando no haya mas de un dispositivo con el mismo nombre de volumen. Es esperable el buen criterio del tecnico al poner nombres de volumen a las unidades extraibles.