Windows 批次檔自動掛載網路磁碟機(含判斷與重試機制)
在企業內部網路或家用網路環境中,掛載網路磁碟機是常見的需求。為了提升部署效率與穩定性,我撰寫了一份批次檔(.bat
),具備以下特性:
- 自動掛載指定網路磁碟機
- 檢查是否已掛載,避免重複連線
- 支援自動重試機制(次數與間隔可自訂)
- 可選擇是否在開機自動重連
批次檔原始碼(MapNetworkDrive.bat)
@echo off
setlocal
:: 以下請依實際情況修改
set DRIVE=Z:
set SHARE=\\192.168.1.10\SharedFolder
set USER=UserA
set PASS=123456
set PERSISTENT=yes
set RETRY=3
set DELAY=3
:: 檢查是否已連線
net use | findstr /I " %DRIVE% " >nul
if %errorlevel%==0 (
echo %DRIVE% 已經連線,略過掛載。
goto end
)
:: 若已存在同名磁碟機則先移除
net use %DRIVE% /delete /yes >nul 2>&1
:: 嘗試掛載(最多重試 %RETRY% 次)
set COUNT=0
:retry
set /a COUNT+=1
echo 正在掛載網路磁碟機 %DRIVE%(第 %COUNT% 次)...
net use %DRIVE% %SHARE% %PASS% /user:%USER% /persistent:%PERSISTENT% >nul 2>&1
if %errorlevel%==0 (
echo 掛載成功
goto end
) else (
echo 掛載失敗
if %COUNT% lss %RETRY% (
echo 等待 %DELAY% 秒後重試...
timeout /t %DELAY% >nul
goto retry
) else (
echo 已重試 %RETRY% 次,仍無法掛載
)
)
:end
pause
參數說明與建議設定
變數 | 說明 |
---|---|
DRIVE | 指定要掛載的磁碟機代號,如 Z: |
SHARE | 網路共享資料夾的 UNC 路徑(如 \\192.168.1.10\SharedFolder ) |
USER | 授權存取共享資料夾的使用者帳號 |
PASS | 上述使用者帳號的密碼 |
PERSISTENT | 是否在開機時自動重新連線(yes 或 no ) |
RETRY | 掛載失敗後重試次數(整數) |
DELAY | 每次重試間的秒數間隔(整數) |
使用情境說明
已授權帳號存取的網路磁碟機
適合公司內部使用者,使用受保護的共享資料夾時,提供帳號密碼可自動掛載。
開放 Everyone 存取的共享資料夾
如使用無帳號認證的分享,則可省略 /user
與密碼設定,例如改為:
net use Z: \\192.168.1.10\PublicShare /persistent:no
測試與部署建議
- 執行批次檔前,請先確認遠端電腦的共享資料夾設定與帳號密碼正確。
- 若使用在啟動流程中,建議將批次檔加入「工作排程器」,設定為使用者登入時執行。
- 若要避免密碼以明文儲存,可考慮改用 Windows 認證管理員或 PowerShell SecureString 技術。
結語
透過這份批次檔,您可以快速且穩定地部署網路磁碟機連線,無需人工操作,提高部署效率與可靠性。特別是在多台工作站或無人值守系統中,這類自動化腳本能大幅減少維運成本。
如需進一步自動化(多磁碟機掛載、記錄 log、集中配置等),可再擴充腳本邏輯或搭配管理平台整合。
如您有特定需求,我也可以幫您客製更進階版本,歡迎留言交流。