什么"!S:〜%I%,1!" ==""意思?

时间:2016-04-13 05:19:27

标签: batch-file cmd

我找到了一些示例代码,但我无法得到if条件的含义:

set /p sourceDB=Enter Source DB: %=%    
set S=%sourceDB%
set I=0
set L=-1
:l ----- Forget about this line
if "!S:~%I%,1!"=="" goto ld
if "!S:~%I%,1!"=="/" set K=%I%
if "!S:~%I%,1!"=="@" set Z=%I%
if "!S:~%I%,1!"==":" set Y=%I%
set /a I+=1
goto l

1 个答案:

答案 0 :(得分:1)

简短的回答是,这就是你如何批量获得子串。

<小时/> 提取子字符串时,使用格式<body ng-controller="AppController as box" ng-init="box.changeSomething()"> ,或者,如果%string_name:~index_of_first_character_in_substring,length_of_substring%index_of_first_character_in_substring的值包含在单独的变量中(在您的示例中,索引是其自己的变量) ),您可以启用延迟扩展并使用格式length_of_substring

在这种情况下,您的主字符串位于名为!string_name:~%variable_whose_value_is_the_index_of_first_character_in_substring%,length_of_substring!的变量中,您从字符%S%开始,并抓取%I%字符。

你告诉我们忽略的那条线实际上非常重要,因为它用于遍历整个字符串。

整行1用于检查子字符串是否为空 - 也就是说,脚本完成了字符串的迭代。如果子串是"!S:~%I%,1!"==""/@,还有条件; K,Z和Y分别包含那些子串的索引。