necesito asignar una unidad de red con un archivo por lotes, pero no quieren para especificar la letra de unidad.Asignar una unidad de red sin codificar una letra de unidad en un archivo por lotes
El archivo se utiliza como parte de un proceso de implementación; Llamo al archivo por lotes desde CruiseControl.Net
, el archivo por lotes necesita asignar una ruta UNC que requiere credenciales para autenticarse. A continuación, el archivo por lotes llama al RoboCopy
para implementar el sitio web desde el directorio de salida al destino (y excluye algunos archivos y carpetas). Finalmente, el lote elimina la unidad de red.
El problema es que esto no es escalable, está bien cuando hay sólo unos pocos proyectos pero ahora Tienen 20 proyectos que utilizan este enfoque y se están quedando sin letras de unidad en el mapa. No quiero volver a usar letras de unidad ya que podrían colisionar, lo que sería malo.
Este es un ejemplo del archivo por lotes:
@echo off
net use x: \\192.168.0.1\Share\wwwroot\MyProject /user:mydomain\myuser MyP455w0rd
robocopy.exe "W:\wwwroot\MyProject" x:\ *.* /E /XO /XD "App_Data/Search" "*.svn" /XF "sitefinity.log" "Thumbs.db" /NDL /NC /NP
net use x: /delete
y formateado para facilitar la lectura:
@echo off
net use x: \\192.168.0.1\Share\wwwroot\MyProject
/user:mydomain\myuser MyP455w0rd
robocopy.exe "W:\wwwroot\MyProject" x:\ *.* /E /XO /XD
"App_Data/Search" "*.svn" /XF "sitefinity.log" "Thumbs.db" /NDL /NC /NP
net use x: /delete
Hay es una posibilidad de múltiples recursos compartidos de red conectados simultáneamente, de lo contrario, siempre podría asignar Z: o una letra codificada por proyecto. net use */delete también liberará TODOS los recursos compartidos conectados y eso sería un problema en el servidor –
@Simon Martin: ver mi respuesta actualizada. –
eso es mucho mejor que mi solución :) –