Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

批次檔互動輸入:set /p 讓腳本等待使用者鍵入數值

編輯:系統常見問題解答

批次檔需暫停等待使用者輸入字串 (如檔名、IP、選項) 時,使用 set /p 即可實現,無需外部工具。

基本語法

set /p varName=提示訊息:
echo 您輸入的是: %varName%
  • /p 表示提示輸入。
  • varName 為變數名稱。
  • = 後的字串為提示訊息 (可為空)。

實用範例:選單輸入

@echo off
:MENU
cls
echo 1. 備份資料
echo 2. 還原資料
echo 3. 離開
set /p choice=請輸入選項 [1-3]:
if "%choice%"=="1" goto BACKUP
if "%choice%"=="2" goto RESTORE
if "%choice%"=="3" exit /b
echo 無效選項,請重新輸入
pause
goto MENU

:BACKUP
echo 執行備份...
rem xcopy / robocopy 指令
goto MENU

:RESTORE
echo 執行還原...
goto MENU

進階技巧

  • 預設值:set /p var=輸入 [預設值]: → 使用者直接按 Enter 時,變數保持原值 (需先 set var=預設值)。
  • 隱藏輸入 (密碼):批次檔無原生支援,需呼叫 PowerShell:
    for /f "delims=" %%i in ('powershell -c "$pwd = Read-Host -AsSecureString '密碼'; [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($pwd))"') do set "pwd=%%i"
  • 輸入驗證:搭配 if not "%var:~0,1%"=="" 檢查非空,或用 findstr 正則驗證格式。
Copyright © Windows教程網 All Rights Reserved