我正在嘗試創建一個可以呼叫的變數 set /p variable=enter: 但是我也希望能夠更改該變數以使其具有多用途,這是我目前所擁有的:
set enter=set /p %secvar%=Enter:
:new
set secvar=name
cls
echo what is your name
%enter%
goto name
這不起作用,我不明白我做錯了什么,我該如何進行這項作業或者我正在做的事情是幼稚的?
uj5u.com熱心網友回復:
這個怎么樣?
@echo off
setlocal
call :enter #one "Your value for '#one' ? "
call :enter #two "Your value for '#two' ? " "default for #2"
call :enter #three "Your value for '#three' ? " defaultfor#3
call :enter #four "" "default for #4"
call :enter #five "" defaultfor#5
call :enter #six "Your value for '#six' ? "
call :enter #seven
call :enter #eight "" defaultfor#8
call :enter #nine "" "default for #9"
set #
goto :eof
:enter
set "%1=%~3"
if "%~2"=="" (set /p "%1=Please enter value for %1 ? "
) else (set /p "%1=%~2")
goto :eof
該例程:enter接受 1 到 3 個引數。第一個是要設定的變數名,第二個是可選的 - 提示訊息。第三個引數也是可選的,指定在回應為 just 時使用的值Enter。
第二個和第三個引數可以是帶引號的字串或單個字串。第二個引數必須""為無提示但設定一個默認值。
運行演示,依次回復1..9。這將顯示分配的值。再次運行但只是回復Enter提示;結果將是那些具有默認值的變數將被設定為該默認值,那些沒有將被“設定”為空(即,如果它們存在,將從環境中洗掉)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/506947.html
