中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-28 03:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何依次提取字符串中的字符 查看 4,166 回复 11
楼 主 如何依次提取字符串中的字符 发表于 2006-12-27 16:42 ·  中国 湖南 长沙 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
set nnn=abcdefghijklmnopurstyvwxyz
问题1,如何依次显示这26个变量?
问题2,其实我本意是建立一批处理,运行后就新建一个文档,命名为a.txt再一次运行就建立b.txt.......c.txt.......d.txt...............
能否将这两个问题分开解答,谢了
.

[ Last edited by namejm on 2007-2-3 at 01:28 PM ]
2 发表于 2006-12-27 21:56 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
显示这26个变量~:)


@echo off


set "nnn=abcdefghijklmnopurstyvwxyz"
for /L %%. in (0,1,25) do ( Call echo %%nnn:~%%.,1%% )
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
ccwan +5 2006-12-27 21:59
26933062 +2 2006-12-28 01:49
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
3 发表于 2006-12-27 21:59 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
好方法!
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
4 发表于 2006-12-27 22:27 ·  中国 河南 许昌 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
2
@echo off
setlocal EnableDelayedExpansion
set "nnn=abcdefghijklmnopurstyvwxyz"
for /L %%. in (0,1,25) do (
set svr=!nnn:~%%.,1!
if not exist "!svr!.txt" cd.>!svr!.txt&&pause
)

想要建立后退出,把“pause”改为“exit”
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
redtek +5 2006-12-27 22:30
26933062 +2 2006-12-28 01:49
5 发表于 2006-12-27 23:16 ·  中国 北京 中国科学院研究生院
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
19年会员
UID 74129
性别 男
状态 离线

恩,调试了,很好啊
6 发表于 2006-12-27 23:18 ·  中国 北京 中国科学院研究生院
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
19年会员
UID 74129
性别 男
状态 离线

! !
如何解释阿
7 发表于 2006-12-27 23:22 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

  在本论坛搜索变量延迟。
8 发表于 2006-12-28 00:26 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  请看如下演示代码:

@echo off
:begin
cls
set "str=abcdefghijklmnopurstyvwxyz"
if not exist num.txt (echo 1)>num.txt&goto pick-up
for /f %%i in (num.txt) do set num=%%i

:pick-up
call set "str=%%str:~%num%,1%%"
set /a num+=1
echo "%str%"
if %num% equ 26 set num=0
(echo %num%)>num.txt
pause
goto begin
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
redtek +5 2006-12-28 00:51
26933062 +2 2006-12-28 01:50
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
9 发表于 2006-12-28 01:50 ·  中国 湖南 长沙 雨花区 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
都太好了,谢谢大家.
10 发表于 2006-12-29 18:58 ·  中国 山东 临沂 电信
中级用户
★★
积分 208
发帖 97
注册 2006-12-28 22:08
19年会员
UID 74845
性别 男
状态 离线
我服了,怎么管理员给管理员加分啊?
有这个必要吗?
11 发表于 2006-12-29 21:19 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
请问是那个管理员给那个管理员加分了?
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
12 发表于 2007-05-08 20:37 ·  中国 广东 中山 电信
初级用户
★★
积分 127
发帖 62
注册 2007-04-19 12:43
19年会员
UID 85744
性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion

set num=0
set "str=abcdefghijklmnopurstyvwxyz"

:loop

echo !str:~%num%,1!
set /a num+=1
ping -n 1 127.1>nul

if %num% equ 26 goto :eof

goto loop
论坛跳转: