batch實現互動式問詢

2021-07-14 06:36:41 字數 1076 閱讀 6091

需求: 在乙個batch指令碼裡需要使用者確認某個資訊是否正確。如果正確,那麼輸入yes,繼續後面的工作;如果不正確,輸入no,然後提示使用者輸入正確的值,並讀入這個值賦給變數,然後繼續後面的工作;如果輸入既非yes又非no,提示使用者重新輸入yes或no,然後再回到前面的判斷。

實現:set var=123456

current var is %var%

echo if confirmed, please input y;otherwise input n: (y/n)

echo off

set /p check_var=

echo off

if not "%check_var%" == "y" (

if not "%check_var%" == "n" (

echo invalid input, try again.

echo if var value is confirmed, please input y ;otherwise input n:(y/n)

echo off

set /p check_var=))

if "%check_var%" == "y" goto unchanged

if "%check_var%" == "n" goto input_var

:unchanged

echo %var% is not changed

goto continue

:input_var

echo please input the new value of var:

echo off

set /p var=

goto continue

:continue

common_actions

事後分析:因為對batch不熟悉,所以不知道這是不是唯一的方法。一開始沒有想到把common_action定義成乙個label,即沒有goto continue那一句。結果每次執行完unchanged lable的內容緊接著就執行input_var的,沒有實現跳轉。後來在網上找了乙個類似的例子,才解決了這個問題。希望以後熟悉batch了,能優化這個方案。



互動式介面

互動式介面 啟動終端後,在終端裝置附加乙個互動式應用程式 runlevel 顯示當前執行的模式 root vm 163 113 centos runlevel n 3init 3 切換至命令列 init 0 停機 千萬不能把initdefault 設定為0 init 1 單使用者模式 init 2 ...

互動式 非互動式,登入式 非登入式Shell

互動式shell和非互動式shell 互動式模式 在終端上執行,shell等待你的輸入,並且立即執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的 登入 執行一些命令 退出。當你退出後,shell也終止了。非互動式模式 以shell scrip...

Python 實現互動式執行命令

paramiko提供了ssh 客戶端的介面,讓大家在寫指令碼的時候可以remote到遠端的機器上執行命令 有時候在執行某些命令的時候我們需要輸入一些值,接著才往下跑,下面是乙個簡單的指令碼來解決這個動態輸入的問題 service tomcat status root1234 if retcode 0...