String 使用字符串名称中的变量批处理字符串变量
我有一个批处理文件,其中有一个名为t%num%的变量,num是一个整数,t%num%=。 我需要将另一个名为q的变量设置为t%num%的内容。 我尝试设置q=t%num%,以便q将包含a,但它不起作用 你可以为此滥用 假设您定义了一个环境变量t5。以下批处理脚本将t5的内容分配给变量q: 但是,请注意,启用延迟的环境变量扩展将使!一个特殊字符,不仅在批处理脚本中,而且在环境变量的内容中。在执行上面的小脚本之前,请尝试为t5设置以下内容:String 使用字符串名称中的变量批处理字符串变量,string,batch-file,String,Batch File,我有一个批处理文件,其中有一个名为t%num%的变量,num是一个整数,t%num%=。 我需要将另一个名为q的变量设置为t%num%的内容。 我尝试设置q=t%num%,以便q将包含a,但它不起作用 你可以为此滥用 假设您定义了一个环境变量t5。以下批处理脚本将t5的内容分配给变量q: 但是,请注意,启用延迟的环境变量扩展将使!一个特殊字符,不仅在批处理脚本中,而且在环境变量的内容中。在执行上面的小脚本之前,请尝试为t5设置以下内容: set t5=Hello World! 你会注意到Hel
set t5=Hello World!
你会注意到Hello World结尾的感叹号消失了
或者试试这个厚颜无耻的东西:
set t5=Guess what: !num!
像这样设置t5,然后执行脚本,嗯。。。我让你来看看会发生什么:@ECHO OFF
SETLOCAL
设置num=5
设置t%num%=36
调用集q=%%t%num%%%
回声%q%%t5%
后藤:EOF
使用%转义%的思想,以便解析器替换num的值,并将结果设置为q=%t5%如果可以显示代码,则调试将更容易…您使用的概念称为数组。看到它的工作原理,我理解百分号是如何工作的,但是set和call set之间有什么区别?set分配了%%t%num%%%的值,因此将分配文字值%t5%。调用集计算结果,从而计算t5的内容。
set t5=Guess what: !num!