![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 02:59 |
共 48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 通过BAT读取文本的前几个字符 |
| 可打印版本 9,837 / 28 |
| 第1楼 junyee | 发表于 2006-11-03 14:51 |
| 中级用户 发帖 112 积分 253 | |
|
通过BAT读取文本的前几个字符 现有一个文件:01.txt
内容为 123 132464…… 我想请人帮忙写个批处理,把01.txt重命名 为123.txt 具体想实现的功能就是读取该TXT文件的前面几个字符(第一个字符到有空格或换行符处,)并将其作为该文件的新文件名。 另: 如果我想把它命名为23.txt怎么写??(想实现的结果同上,再排除字符1) |
|
| 第2楼 junyee | 发表于 2006-11-03 22:48 |
| 中级用户 发帖 112 积分 253 | |
|
↑ 咋没人来帮啊??
所学有限,找不着思路 不要怪我懒 o_o,搜索的话结果太多了~~~ 好乱吖~~ -_-#~~ |
|
| 第3楼 NaturalJ0 | 发表于 2006-11-03 22:56 |
| 银牌会员 发帖 533 积分 1,181 | |
|
提供个思路
for /f ........do (ren ..... & goto.........) |
|
| 第4楼 zerostudy | 发表于 2006-11-03 23:00 |
| 中级用户 发帖 98 积分 266 | |
|
功力有限.呵呵.帮不了你的了...帮你顶下..顺便问下.DOS下.空格和回车用什么表示?
|
|
| 第5楼 不得不爱 | 发表于 2006-11-03 23:16 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
楼上的会忽略空格
FOR /F %%i in (01.txt) do set a=%%i&goto 1 :1 ren 01.txt “%a:~1%.txt” [ Last edited by 不得不爱 on 2006-11-3 at 01:40 PM ] |
|
| 第6楼 youxi01 | 发表于 2006-11-04 00:25 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
楼上斑竹似乎会错了楼主的意思啊?!
代码改为: FOR /F %%i in (01.txt) do rename 01.txt %%i.txt & goto :eof |
|
| 第7楼 namejm | 发表于 2006-11-04 00:39 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
5F的代码会提取到整个第一行,而不会在第一行的空格处截止,不太符合楼主的意思。如果还要抛弃第一行第一列的第一个字符,可以用这个代码:
|
|
| 第8楼 junyee | 发表于 2006-11-04 01:31 |
| 中级用户 发帖 112 积分 253 | |
|
ren 01.txt %var:~1%.txt
想问下这个什么意思?? :~1% |
|
| 第9楼 不得不爱 | 发表于 2006-11-04 01:42 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
%var:~1%的意思是取除第一个字符外的所有字符
5楼代码已经改了 |
|
| 第10楼 namejm | 发表于 2006-11-04 01:50 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
请运行以下代码:
|
|
| 第11楼 3742668 | 发表于 2006-11-05 01:11 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
用了set还用for,有点画蛇添足,不过在这里的目的只是想向新人介绍一下用set /p 获得文件第一行内容这个大众技巧。 代码未经测试。 |
|
| 第12楼 hxuan999 | 发表于 2006-11-23 06:38 |
| 中级用户 发帖 161 积分 337 | |
|
学到东西了.
|
|
| 第13楼 fjcyz | 发表于 2006-12-22 18:47 |
| 初级用户 发帖 36 积分 68 | |
|
记号,.,,好东东
@echo off set str=123456789 echo 第一个字符为:%str:~0,1% echo 头两个字符为:%str:~0,2% echo 头5个字符为:%str:~0,5% echo 去掉最后一个字符后的字符串为:%str:~0,-1% echo 去掉最后3个字符后的字符串为:%str:~0,-3% echo 第4个字符为:%str:~3,1% echo 第4个及其之后的3个字符为:%str:~3,4% echo 最后一个字符为:%str:~-1% echo 最后一个字符为:%str:~-1,1% echo 最后一个字符为:%str:~-1,2% echo 倒数第4个字符为:%str:~-4,1% echo 倒数第4个及其之后的字符为:%str:~-4% echo 倒数第4个及其之后的1个字符为:%str:~-4,2% echo 倒数第4个及其之后的2个字符为:%str:~-4,3% pause 这段代码真难理解... echo 第4个及其之后的3个字符为:%str:~3,4% 这个理解为 第4及之后的3个字符就是 4567 echo 第4个字符为:%str:~3,1% 哪这个不是可以理解为 第1个及之后的3个字符,哪不就是 1234 为什么显示是4..不懂. |
|
| 第14楼 redtek | 发表于 2006-12-22 22:05 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
回fjcyz兄,个人理解大概是这个样子:
ECHO %STR:~指将偏移量的指针移到变量的哪个地方,从指针处取几个字符% 例: SET VAR=ABCDEFG ECHO %VAR:~2,3% 是指从偏移量0开始移动指针,指向第2个字符: 0,1,2(移动了3次),所以指向了字符: C 而 %VAR:~2,这里的3% 是指:从指针指定的位置起要取几个字符? 3,就是指要取3个,当然是从当前指针所指向的位置取3个连续的字符,就是: CDE 只要数它们从哪里开始,就从0开始数,因为它们的偏移量是从0开始的。 %VAR:~偏移量,要取几个% [ Last edited by redtek on 2006-12-22 at 09:07 AM ] |
|
| 第15楼 fjcyz | 发表于 2006-12-22 22:28 |
| 初级用户 发帖 36 积分 68 | |
|
谢谢, 这么说就很容易理解了.
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |