|
junyee
中级用户
积分 253
发帖 112
注册 2006-5-31
状态 离线
|
『楼 主』:
通过BAT读取文本的前几个字符
现有一个文件:01.txt
内容为
123
132464……
我想请人帮忙写个批处理,把01.txt重命名
为123.txt
具体想实现的功能就是读取该TXT文件的前面几个字符(第一个字符到有空格或换行符处,)并将其作为该文件的新文件名。
另:
如果我想把它命名为23.txt怎么写??(想实现的结果同上,再排除字符1)
|
|
2006-11-3 14:51 |
|
|
junyee
中级用户
积分 253
发帖 112
注册 2006-5-31
状态 离线
|
『第
2 楼』:
↑
咋没人来帮啊??
所学有限,找不着思路
不要怪我懒 o_o,搜索的话结果太多了~~~
好乱吖~~ -_-#~~
|
|
2006-11-3 22:48 |
|
|
NaturalJ0
银牌会员
积分 1181
发帖 533
注册 2006-8-14
状态 离线
|
『第
3 楼』:
提供个思路
for /f ........do (ren ..... & goto.........)
|
|
2006-11-3 22:56 |
|
|
zerostudy
中级用户
积分 266
发帖 98
注册 2006-4-21
状态 离线
|
『第
4 楼』:
功力有限.呵呵.帮不了你的了...帮你顶下..顺便问下.DOS下.空格和回车用什么表示?
|
|
2006-11-3 23:00 |
|
|
不得不爱
超级版主
我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
|
2006-11-3 23:16 |
|
|
youxi01
高级用户
积分 846
发帖 247
注册 2006-10-27 来自 湖南==》广东
状态 离线
|
『第
6 楼』:
楼上斑竹似乎会错了楼主的意思啊?!
代码改为:
FOR /F %%i in (01.txt) do rename 01.txt %%i.txt & goto :eof
|
|
2006-11-4 00:25 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
7 楼』:
5F的代码会提取到整个第一行,而不会在第一行的空格处截止,不太符合楼主的意思。如果还要抛弃第一行第一列的第一个字符,可以用这个代码:
@echo off
for /f %%i in (01.txt) do set var=%%i&goto change
:change
ren 01.txt %var:~1%.txt
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2006-11-4 00:39 |
|
|
junyee
中级用户
积分 253
发帖 112
注册 2006-5-31
状态 离线
|
『第
8 楼』:
ren 01.txt %var:~1%.txt
想问下这个什么意思?? :~1%
|
|
2006-11-4 01:31 |
|
|
不得不爱
超级版主
我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
|
2006-11-4 01:42 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
10 楼』:
请运行以下代码:
@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
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2006-11-4 01:50 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
11 楼』:
@echo off
set file=1.txt
set /p str=<%file% >nul
for /f %%i in ("%str%") do ren %file% %%i 用了set还用for,有点画蛇添足,不过在这里的目的只是想向新人介绍一下用set /p 获得文件第一行内容这个大众技巧。
代码未经测试。
|
|
2006-11-5 01:11 |
|
|
hxuan999
中级用户
DOS之日
积分 337
发帖 161
注册 2006-11-4
状态 离线
|
『第
12 楼』:
学到东西了.
|
for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul |
|
2006-11-23 06:38 |
|
|
fjcyz
初级用户
积分 68
发帖 36
注册 2006-12-20
状态 离线
|
『第
13 楼』:
记号,.,,好东东
@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..不懂.
|
|
2006-12-22 18:47 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
14 楼』:
回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 ]
|
Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |
|
2006-12-22 22:05 |
|
|
fjcyz
初级用户
积分 68
发帖 36
注册 2006-12-20
状态 离线
|
『第
15 楼』:
谢谢, 这么说就很容易理解了.
|
|
2006-12-22 22:28 |
|