批次檔需暫停等待使用者輸入字串 (如檔名、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=預設值)。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 正則驗證格式。