Potrzebuję zmapować dysk sieciowy za pomocą pliku wsadowego, ale nie chcę podawać litery dysku.Mapowanie dysku sieciowego bez kodowania dysku twardego w pliku wsadowym
Plik wsadowy jest używany jako część procesu wdrażania; Wezwę plik wsadowy z CruiseControl.Net
, plik wsadowy musi zmapować ścieżkę UNC, która wymaga poświadczeń do uwierzytelnienia. Następnie plik wsadowy wywołuje RoboCopy
, aby wdrożyć witrynę z katalogu wyjściowego do miejsca docelowego (i wyklucza niektóre pliki i foldery). Wreszcie partia usuwa dysk sieciowy.
Problem polega na tym, że nie jest to skalowalne, jest w porządku, gdy jest tylko kilka projektów, ale mamy teraz 20 projektów wykorzystujących to podejście i brakuje nam liter dysku do mapowania. Nie chcę ponownie używać liter dysków, ponieważ mogłyby się zderzyć - co byłoby złe.
To jest przykład pliku wsadowego:
@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
i sformatowany dla czytelności:
@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
Nie jest szansą na jednoczesne połączenie wielu udziałów sieciowych, w przeciwnym razie zawsze mógłbym przypisać Z: lub zakodowaną na stałe literę na projekt. użycie net */delete spowoduje również uwolnienie WSZYSTKICH połączonych udziałów, a to byłby problem na serwerze –
@Simon Martin: zobacz moją zaktualizowaną odpowiedź. –
to o wiele ładniejsze niż moje rozwiązanie :) –