I need to map a network drive with a batch file, but don't want to specify the drive letter.
The batch file is used as part of a deployment process; I call the batch file from CruiseControl.Net
, the batch file needs to map a UNC path which requires credentials to authenticate. Then the batch file calls RoboCopy
to deploy the website from the output directory to the destination (and excludes some files and folders). Finally the batch deletes the network drive.
The problem is that this isn't scalable, it's fine when there are only a few projects but we've now got 20 projects using this approach and are running out of drive letters to map. I don't want to re-use drive letters as they could collide - which would be bad.
This is an example of the batch file:
@echo off
net use x: \192.168.0.1SharewwwrootMyProject /user:mydomainmyuser MyP455w0rd
robocopy.exe "W:wwwrootMyProject" x: *.* /E /XO /XD "App_Data/Search" "*.svn" /XF "sitefinity.log" "Thumbs.db" /NDL /NC /NP
net use x: /delete
and formatted for readability:
@echo off
net use x: \192.168.0.1SharewwwrootMyProject
/user:mydomainmyuser MyP455w0rd
robocopy.exe "W:wwwrootMyProject" x: *.* /E /XO /XD
"App_Data/Search" "*.svn" /XF "sitefinity.log" "Thumbs.db" /NDL /NC /NP
net use x: /delete
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…