请问BAT命令如何截取特定字符串,例如截取 com/ajsnfjakfb@sgsr 中/到@之间的内容?

如题所述

第1个回答  2012-04-06
set srt=com/ajsnfjakfb@sgsr
set srt=%srt:*/=%
for /f "delims=@" %%a in ("%srt%") do set srt=%%a
::此时的srt值为ajsnfjakfb
::——————————————————————————
::解释:先用变量截取,删除“/"及前面的所有字符,得到字符串“ajsnfjakfb@sgsr”,再用for命令,以“@”为分隔符,将字符串分成两部分“ajsnfjakfb”与“sgsr”,最后取其第一部分即可追问

请问一下那如果现在有好多这样的地方,并且在一个a.txt文件中,例如:sdf/ab@aaefe/cd@ajnefkjenf/ef@aksenfkenfkefaegegfege/gh@aefav,如何截取每一处“/”到“@”之间的内容,即“ab” “cd” “ef” “gh”到另一个b.txt文本中,要求每个占一行,如
ab
cd
ef
gh

菜鸟,麻烦详细一点,谢谢了!

追答

for /f "tokens=2,4,6,8 delims=/@" %%a in (a.txt) do (
echo %%a>b.txt
echo %%b>>b.txt
echo %%c>>b.txt
echo %%d>>b.txt
)
::具体的要是情况而定,这只是一个例子

相似回答