#在批处理程序中与SET配合使用

时间:2018-10-26 15:36:18

标签: batch-file window

我正在寻找一种批量获取字符串长度的方法。因此,我阅读了jeb的answer,其中包含一些我没有得到的神秘迹象。

检索输入字符串时,他在函数strlen中使用井号(#):

:strlen <resultVar> <stringVar>
(   
[...]
    set "s=!%~2!#"
[...]
)

有人可以解释英镑符号的含义吗? 据我了解,!%~2!给出了调用中的第二个参数。但是#的作用是什么,为什么SET中的"之后的表达式呢?

1 个答案:

答案 0 :(得分:1)

我在strlen函数中使用了哈希字符application.properties解决了两个问题。

对于空的(未定义)变量,使用# snytax分隔变量失败,附加字符可以防止该问题。

通过添加字符补偿结果,算法的结果是字符串长度减去:~n,m变量之一。

为什么要使用哈希?
我记得的唯一原因是使用了没有任何特殊批处理功能的字符,而且字符清晰可见。