bat中如何从文件中截取字符串,并将次字符串作为参数传出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat中如何从文件中截取字符串,并将次字符串作为参数传出相关的知识,希望对你有一定的参考价值。
我需要将file.txt中第一行的012WEV147Y000586和第二行中012VEW147S000304分别命名为SN1和SN2,并在 传给start \...\123.bat %sn1% 和start \...\123.bat %sn2%。请高手帮忙解决,谢谢
以下为file.txt中的内容
List of devices attached
012WEV147Y000586 device
012VEW147S000304 device
@echo off
set ifo=abcdefghijklmnopqrstuvwxyz0123456789
echo 原字符串(第二行为各字符的序号):
echo %ifo%
echo 123456789012345678901234567890123456
echo 截取前5个字符:
echo %ifo:~0,5%
echo 截取最后5个字符:
echo %ifo:~-5%
echo 截取第一个到倒数第6个字符:
echo %ifo:~0,-5%
echo 从第4个字符开始,截取5个字符:
echo %ifo:~3,5%
echo 从倒数第14个字符开始,截取5个字符:
echo %ifo:~-14,5%
pause
取得的字符串的应用,如:替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串
@echo off
set aa=伟大的中国!我为你自豪!
echo 替换前:%aa%
echo 替换后:%aa:中国=中华人民共和国%
echo aa = %aa%
set "aa=%aa:中国=中华人民共和国%"
echo aa = %aa%
pause 参考技术B @Echo Off
(For /L %%a In (1 1 2) Do Set /P SN%%a=)<file.txt
Start \\...\\123.bat "%SN1%"
Start \\...\\123.bat "%SN2%"
是否符合要求?
追问这个还是没有把SN传给"%SN1%"和"%SN2%",不过麻烦您帮忙解释一下
(For /L %%a In (1 1 2) Do Set /P SN%%a=)<file.txt
谢谢!
额,这倒是有点奇怪,那句的意思简单点说就是从file.txt中读取前两行数据分别赋值给SN1和SN2
如何截取两个字符之间的字符串
截取两个字符之间的字符串有两种方法:1.slice(start,[end])
该方法返回一个新数组,包含了源函数从start到 end 所指定的元素,但是不包括end元素。
如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度。
如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度。
如果省略 end ,那么 slice 方法将一直复制到源数组结尾。
如果 end 出现在 start 之前,不复制任何元素到新数组中。
2.subString(start,[end])
该方法返回一个新数组,包含了源函数从start到 end 所指定的元素,但是不包括end元素。
如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
如果 start 或 end 为负数,那么它将被替换为 0。 参考技术A 如果两个特殊字符是一样的话,那就好办了噻。直接用string的split函数就可以的。就可以得到三个字符串的,其中第二个字符串就是你要得到的字符串的。。
如果两个特殊字符是不一样的话,那就你可以先获取第一个特殊字符的split函数进行分解的,然后再分解第二个特殊字符的split函数的,得到的第一个字符串就是你要的字符串。
以上是关于bat中如何从文件中截取字符串,并将次字符串作为参数传出的主要内容,如果未能解决你的问题,请参考以下文章