Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 不确定如何批量转换变量_Batch File - Fatal编程技术网

Batch file 不确定如何批量转换变量

Batch file 不确定如何批量转换变量,batch-file,Batch File,我在尝试将批处理文件中的变量从一个转换为另一个时遇到了一些问题 echo Select One: echo Variable One [1] echo Variable Two [2] echo Variable Three [3] set /p var= 此时,用户将键入1、2或3以继续。代码继续说明这一点 set "1=Variable One" set "2=Variable Two" set "3=Variable Three" echo %var% 我试图回显最初回显的内容(即“变

我在尝试将批处理文件中的变量从一个转换为另一个时遇到了一些问题

echo Select One:
echo Variable One [1]
echo Variable Two [2]
echo Variable Three [3]
set /p var=
此时,用户将键入1、2或3以继续。代码继续说明这一点

set "1=Variable One"
set "2=Variable Two"
set "3=Variable Three"
echo %var%

我试图回显最初回显的内容(即“变量一”、“变量二”),但它仍然在屏幕上显示“1”、“2”和“3”。我做错了什么?

当您说
SET 1=variable One
时,您试图创建一个数字作为变量。这是不合法的,因为变量名(剩下的
=
)不能只是一个数字

我相信您需要的是一个简单的
IF
语句:

:Menu
echo Select One:
echo Variable One [1]
echo Variable Two [2]
echo Variable Three [3]
set /p var=

REM Initialize selection.
SET "Selected="
IF "%var%"=="1" SET Selected=Variable One
IF "%var%"=="2" SET Selected=Variable Two
IF "%var%"=="3" SET Selected=Variable Three

REM Make sure a valid selection was made.
IF "%Selected%"=="" (
    ECHO Please enter a valid value.
    GOTO Menu
)

ECHO You selected: %Selected%
@ECHO关闭
SETLOCAL
设置“var1=1”
设置“var2=2”
设置“var3=3”
设置“输入=”
设置/p“输入=输入1、2或3?”
如果定义了变量%input%,则调用echo%%var%input%%%
后藤:EOF
这里有一种做类似事情的方法——但这只是一个微不足道的人工演示

您可以将数字设置为变量,但natch语法定义了
%n
(其中
n
0..9
作为参数值。要检索变量的值,请使用
%varname%
,例如
%1%
——哪个批次将解释为参数#1+a
%
,而不是变量
1
的内容。 E 解决方案:始终以字母字符开头variablename(也有一些符号)

调用echo%%var%input%%
是一种高级结构,需要了解解析过程,因此我不会试图解释它而混淆问题

也许您应该检查
选项
指令(在提示下,键入
选项/?
)以从列表、菜单样式中进行选择


这取决于你真正想做什么-方法可能取决于应用程序。琐碎的例子可能会产生误导。

我会在IFs后添加一些额外的检查。除非你键入了错误的选择,否则你不应该到达那里,因此,
回显和跳转到结尾或回到问题将捕获这种情况我认为,这正是做这件事的方法。