Board logo

标题: [文本处理] 【已解决】 批处理怎样截取字符串并且按照循环次数截取? [打印本页]

作者: ⒎冄31.號    时间: 2020-1-17 06:17     标题: 【已解决】 批处理怎样截取字符串并且按照循环次数截取?

本帖最后由 ⒎冄31.號 于 2020-1-22 04:01 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ::定义一个变量存储名字。
  4. set name=文本名字
  5. ::定义一个变量存储文件格式。
  6. set format=txt
  7. ::定义A-Z的编码序号
  8. set number=ABCDEFGHIJKLMNOPQRSTUVWXYZ
  9. set /a Bit=0
  10. ::目前没有实现
  11. for %%i in ( "%number%" ) do (
  12. echo %name%!number:~%Bit%,1!.%format%
  13. set /a Bit+=1
  14. )
  15. pause
复制代码
我的想法是每次循环获取到的数字来替换截取字符的第几位的字母
echo %name%!number:~%Bit%,1!.%format%
我这样写好像有问题。Bit的数字好像不会变。另外我的脚本就执行一次。

还请各位老师教导一下。我的代码该如何修改。

新手小白求教。谢谢各位老师!
作者: /zhqsystem/zhq    时间: 2020-1-17 22:45

set number=ABCDEFGHIJKLMNOPQRSTUVWXYZ
call:0
set 文本名字
pause
goto:eof
:0
set "n=-1"&&rem 这里只能为-1
:1
set/a "n+=1"
set/a "m=n+10"&&rem 这里的值是循环起始量默认+10,需要延迟变量开启
if /i "!number:~%n%,1!"=="" (set "n="&&goto:eof)else set "文本名字!m!=!number:~%n%,1!"
goto:1
作者: ⒎冄31.號    时间: 2020-1-18 05:14

回复 2# /zhqsystem/zhq


    老师您好。
我换了个思路。写出来了,但是还是又问题需要修改。

十分感谢您。。您提供的方法。我研究学习一下。

再次感谢您!
作者: Batcher    时间: 2020-1-18 21:54

回复 1# ⒎冄31.號
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 定义一个变量存储名字。
  4. set name=文本名字
  5. REM 定义一个变量存储文件格式。
  6. set format=txt
  7. REM 定义A-Z的编码序号
  8. set number=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
  9. set Bit=0
  10. for %%i in (%number%) do (
  11.     call echo %name%%%number:~!Bit!,1%%.%format%
  12.     set /a Bit+=2
  13. )
  14. pause
复制代码

作者: Batcher    时间: 2020-1-18 21:55

回复 1# ⒎冄31.號
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 定义一个变量存储名字。
  4. set name=文本名字
  5. REM 定义一个变量存储文件格式。
  6. set format=txt
  7. REM 定义A-Z的编码序号
  8. set number=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
  9. for %%i in (%number%) do (
  10.     echo %name%%%i.%format%
  11. )
  12. pause
复制代码

作者: ⒎冄31.號    时间: 2020-1-22 03:36

回复 5# Batcher


    谢谢老师。学习了。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2