我试图解释我为工作而写的批处理文件,并且我很难解释这一部分。需要说明的是,该部分按设计工作,因此这不是关于如何编写它的问题;我无法弄清楚它叫什么以及如何向同事解释它。特别是,我对代字号的位置感到好奇。例如,我的代码中的:~0,1 和:~0,3 和:~3,2 。对于我的生活,我无法解释它们是如何工作的。我认为他们扩展变量,但这只是谷歌搜索引出的变量。
这是我脚本中的部分:
:_RebootQuestion
ECHO.
Set /p _Resp=Would you like to reboot now (Y/N)?
If /I "%_Resp:~0,1%"=="Y" shutdown -r -t 0 -f
If /I "%_Resp:~0,1%"=="N" exit
If /I NOT "%_Resp:~0,1%"=="N" (
Echo Y or N please. &GoTo _RebootQuestion
)
这是我在网上看到的一个例子:
set test=12345
echo %test:~0,3%
echo %test:~3,2%
答案 0 :(得分:1)
见https://ss64.com/nt/syntax-substring.html。 基本上,您正在提取变量的子字符串:
%variable:~num_chars_to_skip%
%variable:~num_chars_to_skip,num_chars_to_keep%
答案 1 :(得分:1)
这些被称为子串。基本上,它们提取由character length
和offset
指定的变量的一部分。
在您的脚本中,%_Resp:~0,1%
将获取用户输入的第一个字符并检查它是否为< em> Y 或 N 。
这意味着用户可以输入是,否,Y,N ,因为它们都以相同的字母开头
正如set /?
也可以指定扩展的子字符串。
%PATH:~10,5%
会扩展PATH环境变量,然后只使用5 从第11个(偏移10)字符开始的字符 扩大结果。如果未指定长度,则默认为 变量值的其余部分。如果是任何一个数字(偏移或 (长度)是负数,那么使用的数字是长度 环境变量值添加到指定的偏移量或长度。
%PATH:~-10%
将提取PATH变量的最后10个字符。
%PATH:~0,-2%
将提取除PATH变量的最后2个字符之外的所有字符。