比如我 set MyVarA=the.last.stand 如何使得我能 set MyVarB=【MyVarA中最后一个“点(.)”后面的字符串】
本人初学CMD不久,还望高手在给出代码的时候能多添几处注释。
最新回答
蘇瑾熙
2024-05-18 04:43:21
1、首先打开cmd窗口,然后输入格式 :%PATH:str1=str2% 将
字符串
的变量%PATH%中的str1替换为str2。
2、在尝试将www.baidu.com中的.更改为。
3、字符串截取格式:%a:~[m[,n]]%
方括号
表示可选,%为变量
标识符
,a为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移”即可,m 为
偏移量
(缺省为0),n 为截取长度。
4、set var=%a:~-3% 这里就是就是把变量a 倒数 3 位的值赋予变量var。
5、最后字符串截取总结以a=www.baidu.com。
我自有舟渡
2024-05-18 05:08:24
1 如果是取最左的特定字符(串)之后的部分可用 set "MyVarB=%MyVarA:*.=%" 意思是变量MyVarA第一个.及之前部分替换为空 则MyVarB取得last.stand 当然继续以此方法总是可以取到最后部分 :get if not "%MyVarB:.=%"=="%MyVarB%" set MyVarB=%MyVarB:*.=%&goto :get 2 对于取最后一个点后的部分,可以把它想象成一个带后缀的文件名 for %%i in ("%MyVarA%") do set "Vq=%%~xi" set "MyVarB=%Vq:.=%" 注: set 命令后的引号不是必要的%%~xi 表示取后缀名 for命令中的双%%符如在命令行需改为单% 因后缀名是带.的,再把点替换为空(或去掉第一字符set "MyVarB=%Vq:~1%") 3 for命令是循环命令语法比较复杂比如还可以: for %%i in ("%MyVarA:.=","%") do set "MyVarB=%%~i" 将原串每个.换成"," 且首尾都加上引号,这样形成 "the","last","stand"的字符串 会以逗号为分隔符,循环执行do后的赋值命令,虽然执行了3次但最后一次是最终的赋值情况 还可有其它方法,建议先把如set这样的简单命令熟悉了再去研究for这样的复杂命令