批处理文件 – 如何在批处理文件中拆分不带循环的字符串
我想分割一个字符串两部分,而不使用任何for循环.
例如,我有一个变量中的字符串: str=45:abc 我想在另一个变量中得到一个变量和abc的45.是否可能在批处理文件? 模式就像somenumber:somestring
你可以用不同的方式拆分str.
for循环,你不想使用它. 尾随部分很容易与*(匹配任何东西直到…) 领先的部分可以用一个讨厌的技巧来完成 需要插入符号来避开&符号, set "var1=4567" REM #abcde` 完整的代码在这里: set "str=4567:abcde" echo %str% set "var1=%str::="^&REM #% set "var2=%str:*:=%" echo var1=%var1% var2=%var2% 编辑2:更稳定的领先部分 感谢Dave想要使用换行符. @echo off setlocal enableDelayedExpansion set ^"str=456789#$#abc" for /F "delims=" %%a in (^"!str:#$#^=^ !^") do ( set "lead=%%a" goto :break ) :break echo !lead! 解决方案3:补充dbenhams答案 Dbenham在他的解决方案中使用带有管道的换行. 首先,将冒号替换为延期扩展替换的换行符. setlocal enableDelayedExpansion set "str=45:abc" set ^"lead=!str::=^ !" set lead=%lead% echo "!lead!" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |