批处理for循环中字符串拼接问题 5
for/f"tokens=1delims="%%iin('***')do(setname=%%isetj=!name:~0,2!if!j!==CNechoAAA/!nam...
for /f "tokens=1 delims= " %%i in (' *** ') do (
set name=%%i
set j=!name:~0,2!
if !j!==CN echo AAA/!name!/BBB/CCC
)
例如得到的 !name! 为 FFF
最后输出只显示 AAA/FFF
我想得到的输出是 AAA/FFF/BBB/CCC
我该怎么写? 展开
set name=%%i
set j=!name:~0,2!
if !j!==CN echo AAA/!name!/BBB/CCC
)
例如得到的 !name! 为 FFF
最后输出只显示 AAA/FFF
我想得到的输出是 AAA/FFF/BBB/CCC
我该怎么写? 展开
1个回答
展开全部
for循环中,/f参数时,可以使用skip、tokens、delims、三个条件,skip是跳行,tokens是提取参数个数,delims是匹配分割符号。当delims和tokens放在一起时候,以你这个为例子:
for /f "tokens=1 delims= " %%i in (' *** ') do (//你这里以空格为间隔符,提取第一个作为%%i
set name=%%i //然后字符串赋值
set j=!name:~0,2! //扩展赋值,如果用到延迟变量,怎么开头没开启延迟变量?
if !j!==CN echo AAA/!name!/BBB/CCC //如果j字符换等于CN,显示AAA/!name!/BBB/CCC
)
从你这个问题推断,你的文件中字符串的格式不对。应该是有很多换行,或者扩展赋值那错了,你把题目写得太模糊,最好把原题放出来。
for /f "tokens=1 delims= " %%i in (' *** ') do (//你这里以空格为间隔符,提取第一个作为%%i
set name=%%i //然后字符串赋值
set j=!name:~0,2! //扩展赋值,如果用到延迟变量,怎么开头没开启延迟变量?
if !j!==CN echo AAA/!name!/BBB/CCC //如果j字符换等于CN,显示AAA/!name!/BBB/CCC
)
从你这个问题推断,你的文件中字符串的格式不对。应该是有很多换行,或者扩展赋值那错了,你把题目写得太模糊,最好把原题放出来。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询