中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 02:35
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]如何去掉文件名的最后几个字符?
可打印版本  940 / 8
第1楼 flyhighxu 发表于 2008-04-03 00:17
初级用户 发帖 11 积分 32
[已结]如何去掉文件名的最后几个字符?
如何去掉文件名的最后几个字符?

比如有个文件名为 host_1.1.1.1_200710301232.log
我想去掉“_200710301232”这几个字符,但是不去掉扩展名“.log”,
批处理怎么写呢?谢谢

[ Last edited by HAT on 2008-12-31 at 02:04 ]
第2楼 bat-zw 发表于 2008-04-03 00:26
金牌会员 发帖 1,276 积分 3,105
用变量替换:
@echo off
set var=host_1.1.1.1_200710301232.log
set var=%var:_200710301232=%
echo %var%&pause
第3楼 flyhighxu 发表于 2008-04-03 00:32
初级用户 发帖 11 积分 32
Originally posted by zw19750516 at 2008-4-3 12:26 AM:
@echo off
set var=host_1.1.1.1_200710301232.log
set var=%var:_200710301232=%
echo %var%&pause


呃,这个,是这样的,我有一堆文件,我想去掉文件名的最后15个字符,这15个字符不全是“_200710301232”,只是字符数目一样多,因此不能这样直接替换。
第4楼 bat-zw 发表于 2008-04-03 00:44
金牌会员 发帖 1,276 积分 3,105
也好办:
假设所有文件在d盘a文件夹中:


[ Last edited by zw19750516 on 2008-4-3 at 12:49 AM ]
第5楼 zh159 发表于 2008-04-03 00:44
金牌会员 发帖 1,467 积分 3,687
自己测试:



[ Last edited by zh159 on 2008-4-3 at 12:46 AM ]
第6楼 terse 发表于 2008-04-03 02:13
银牌会员 发帖 946 积分 2,404
@echo off
for /f "delims=" %%i in ('dir/b /a-d *.log') do set a=%%i&call echo %%a:~0,-15%%%%~xi
pause
第7楼 flyhighxu 发表于 2008-04-03 16:01
初级用户 发帖 11 积分 32
Originally posted by zh159 at 2008-4-3 12:44 AM:
自己测试:



[ Last edited by zh159 on 2008-4-3 at 12:46 AM ]



这个不错,受教了,^_^
第8楼 xtanbmy 发表于 2008-04-07 19:30
初级用户 发帖 31 积分 47
学习了,是个好东西。
第9楼 nanoking 发表于 2008-12-30 07:49
新手上路 发帖 3 积分 5
试试这个看行不行!




晕,没有看发贴的时间!

[ Last edited by nanoking on 2008-12-30 at 07:57 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023