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是否在開機時自動重新連線(yesno
RETRY掛載失敗後重試次數(整數)
DELAY每次重試間的秒數間隔(整數)

使用情境說明

已授權帳號存取的網路磁碟機

適合公司內部使用者,使用受保護的共享資料夾時,提供帳號密碼可自動掛載。

開放 Everyone 存取的共享資料夾

如使用無帳號認證的分享,則可省略 /user 與密碼設定,例如改為:

net use Z: \\192.168.1.10\PublicShare /persistent:no

測試與部署建議

  1. 執行批次檔前,請先確認遠端電腦的共享資料夾設定與帳號密碼正確。
  2. 若使用在啟動流程中,建議將批次檔加入「工作排程器」,設定為使用者登入時執行。
  3. 若要避免密碼以明文儲存,可考慮改用 Windows 認證管理員或 PowerShell SecureString 技術。

結語

透過這份批次檔,您可以快速且穩定地部署網路磁碟機連線,無需人工操作,提高部署效率與可靠性。特別是在多台工作站或無人值守系統中,這類自動化腳本能大幅減少維運成本。

如需進一步自動化(多磁碟機掛載、記錄 log、集中配置等),可再擴充腳本邏輯或搭配管理平台整合。

如您有特定需求,我也可以幫您客製更進階版本,歡迎留言交流。

Last modification:June 22, 2025
If you think my article is useful to you, please feel free to appreciate