[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理截取字符串长度的问题

本帖最后由 netdzb 于 2021-1-21 14:51 编辑
  1. @echo off
  2.   set ifo=d6b278efc3f372ece0c93d2b7526510b
  3.   echo %ifo:~0,10%
  4.   echo %ifo:~1,10%
  5.   echo %ifo:~2,10%
  6.   echo %ifo:~3,10%
  7.   echo %ifo:~4,10%
  8.   echo %ifo:~5,10%
  9.   echo %ifo:~6,10%
  10.   echo %ifo:~7,10%
  11.   echo %ifo:~8,10%
  12.   echo %ifo:~9,10%
  13.   echo %ifo:~10,10%
  14.   echo %ifo:~11,10%
  15.   echo %ifo:~12,10%
  16.   echo %ifo:~13,10%
  17.   echo %ifo:~14,10%
  18.   echo %ifo:~15,10%
  19.   echo %ifo:~16,10%
  20.   echo %ifo:~17,10%
  21.   echo %ifo:~18,10%
  22.   echo %ifo:~19,10%
  23.   echo %ifo:~20,10%
  24.   echo %ifo:~21,10%
  25.   echo %ifo:~22,10%
  26. pause
复制代码
================

截取字符串的长度,保持字符串的长度为10。我写了一个比较笨的写法,有没有优雅一点的写法?

本帖最后由 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%

TOP

本帖最后由 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循环里面就无法实现了吗?

TOP

回复 6# qixiaobin0715

批处理好神奇啊,这是什么原理啊?

TOP

回复 9# qixiaobin0715

1-4位的数字正则替换怎么写

7    ===>  00007
27   ===>  00027
389  ===>  00389
4568 ===>  04568

这个可以正则可以做到吗?

TOP

返回列表