1、%data:~0,4%
假设:箭头→ ← 分别表示向右、向左
set aa=1234567890
小结
1、偏移量为正值时,表示指针向右移动;为负值时,表示指针从字符串最右端起向左移动.
2、如果长度值为正,表示向右提取若干个字符;如果为负,表示向右提取所有字符,并去除若干个字符.”若干个=长度值的绝对值。”提取字符的方向总是自左向右进行的.
3、如果为单个数字,那么这个数字表示的是偏移量,长度值取默认值,既是字符串的”余数”,也就是从指针处开始,向右方向的所有字符.如果这个数字是负数,可以简单的理解为:提取字符串末尾的若干个字符.(正确的解释应该是:表示指针反方向偏移,←偏移若干位,然后从指针处开始→提取所有字符)
参考网址:https://blog.csdn.net/cyxlxp8411/article/details/7555541
2、%variable:str1=str2%
%variable:str1=str2% which means: ‘replace every str1 in variable with str2’.
示例:去除字符串中所有的空格
参考网址:https://stackoverflow.com/questions/5816178/how-to-replace-string-inside-a-bat-file-with-command-line-parameter-string
https://en.wikipedia.org/wiki/Batch_file
https://blog.csdn.net/sinat_16741503/article/details/72869123
3、for /f 详解
for /f 主要用来处理文件和一些命令的输出结果。
【命令格式】
【参数说明】
@H_301_5@file代表一个或多个文件,可以使用通配符。 string 代表字符串 command代表命令 ["options"]选项有多个: eol=c - 指定一个行注释字符,遇到c开头的行就忽略掉。 skip=n - 指定在文件开始时忽略的行数。 delims=xxx - 指定分隔符。默认是空格和TAB。 tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代 的 for 本身。这会导致额外变量名称的分配。m-n 格式为一个范围。通过 nth 符号指定 mth。如果 符号字符串中的最后一个字符星号, 那么额外的变量将在最后一个符号解析之后 分配并接受行的保留文本。 usebackq -详见下节未使用usebackq和使用usebackq时集合内的符号比较:
未使用参数usebackq时 | 使用参数usebackq时 | |
---|---|---|
双引号”” | 表示字符串,即”string”。 | 当文件路径或名称中有空格时,用双引号括起来。 |
单引号’’ | 表示执行命令,即’command’ 。 | 表示字符串,即’string’ 。 |
后引号“ | 表示命令执行,即“command ”。 |
参考网址:http://www.bathome.net/thread-9512-1-1.html
https://blog.csdn.net/gameloft9/article/details/20902681
http://www.360doc.com/content/15/1014/01/1564981_505480271.shtml