标题: [文本处理] 批处理截取字符串长度的问题 [打印本页]
作者: netdzb 时间: 2021-1-19 09:55 标题: 批处理截取字符串长度的问题
本帖最后由 netdzb 于 2021-1-21 14:51 编辑
- @echo off
- set ifo=d6b278efc3f372ece0c93d2b7526510b
- echo %ifo:~0,10%
- echo %ifo:~1,10%
- echo %ifo:~2,10%
- echo %ifo:~3,10%
- echo %ifo:~4,10%
- echo %ifo:~5,10%
- echo %ifo:~6,10%
- echo %ifo:~7,10%
- echo %ifo:~8,10%
- echo %ifo:~9,10%
- echo %ifo:~10,10%
- echo %ifo:~11,10%
- echo %ifo:~12,10%
- echo %ifo:~13,10%
- echo %ifo:~14,10%
- echo %ifo:~15,10%
- echo %ifo:~16,10%
- echo %ifo:~17,10%
- echo %ifo:~18,10%
- echo %ifo:~19,10%
- echo %ifo:~20,10%
- echo %ifo:~21,10%
- echo %ifo:~22,10%
- pause
复制代码
================
截取字符串的长度,保持字符串的长度为10。我写了一个比较笨的写法,有没有优雅一点的写法?
作者: qixiaobin0715 时间: 2021-1-19 10:17
回复 1# netdzb
截取前10位:echo %ifo:~0,10%
截取后10位:echo %ifo:~-10%
作者: netdzb 时间: 2021-1-19 10:21
本帖最后由 netdzb 于 2021-1-19 10:22 编辑
回复 2# qixiaobin0715
对字符串进行截取,
set startPath=F:\AntiqueDetective\Dataset
set firstPath=%startPath:~0,5%
想把截取0-5位数字改为截取0-n位数字,也就是用变量来表示,请问该如何写?
我的问题别人也提过,就是能否传递变量进去,我试过好像不行啊。
下面的代码无法通过啊
set/a n+=1
echo %n%
echo %ifo:~!n!,10%
作者: qixiaobin0715 时间: 2021-1-19 10:31
- @echo off
- set ifo=d6b278efc3f372ece0c93d2b7526510b
- setlocal enabledelayedexpansion
- for /l %%a in (0,1,22) do (
- echo !ifo:~%%a,10!
- )
- pause
复制代码
作者: netdzb 时间: 2021-1-19 10:35
本帖最后由 netdzb 于 2021-1-19 10:44 编辑
回复 4# qixiaobin0715
@echo off
set n=8
set ifo=d6b278efc3f372ece0c93d2b7526510b
echo %ifo:~0,10%
set/a n+=1
echo %n%
echo %ifo:~!n!,10%
pause
最后一行代码帮看一下,如何修改?不在for循环里面就无法实现了吗?
作者: qixiaobin0715 时间: 2021-1-19 10:50
call echo %%ifo:~%n%,10%%
作者: netdzb 时间: 2021-1-19 10:54
回复 6# qixiaobin0715
批处理好神奇啊,这是什么原理啊?
作者: qixiaobin0715 时间: 2021-1-19 10:56
回复 7# netdzb
好像是预处理机制,我也不太懂
作者: qixiaobin0715 时间: 2021-1-19 10:57
call实现临时变量延迟
作者: netdzb 时间: 2021-1-19 14:34
回复 9# qixiaobin0715
1-4位的数字正则替换怎么写
7 ===> 00007
27 ===> 00027
389 ===> 00389
4568 ===> 04568
这个可以正则可以做到吗?
作者: terse 时间: 2021-1-21 15:28
本帖最后由 terse 于 2021-1-21 15:29 编辑
- set s=000007
- set s=!s:~-5!
- echo;!s!
复制代码
回复 10# netdzb
正则不行 只能补位
作者: terse 时间: 2021-1-21 17:44
回复 5# netdzb
不在FOR里的话 对调一下应该可行 !ifo:~%n%,10!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |