楼 主
[已结]如何去掉文件名的最后几个字符?
发表于 2008-04-03 00:17 · 中国 北京 联通
初级用户
★
积分 32 发帖 11 注册 2008-03-08 22:19 18年会员 UID 112424 性别 男
状态 离线
如何去掉文件名的最后几个字符?
比如有个文件名为 host_1.1.1.1_200710301232.log
我想去掉“_200710301232”这几个字符,但是不去掉扩展名“.log”,
批处理怎么写呢?谢谢
[ Last edited by HAT on 2008-12-31 at 02:04 ]
第 2 楼
用变量替换:
发表于 2008-04-03 00:26 · 中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105 发帖 1,276 注册 2008-03-08 13:00 18年会员 UID 112398 性别 男
状态 离线
@echo off
set var=host_1.1.1.1_200710301232.log
set var=%var:_200710301232=%
echo %var%&pause
批处理之家新域名:www.bathome.net
第 3 楼
发表于 2008-04-03 00:32 · 中国 北京 联通
初级用户
★
积分 32 发帖 11 注册 2008-03-08 22:19 18年会员 UID 112424 性别 男
状态 离线
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 楼
也好办:
发表于 2008-04-03 00:44 · 中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105 发帖 1,276 注册 2008-03-08 13:00 18年会员 UID 112398 性别 男
状态 离线
假设所有文件在d盘a文件夹中:
@echo off
for /f "delims=.log tokens=1" %%i in ('dir /a-d /b d:\a') do (
set var=%%i
setlocal enabledelayedexpansion
set var=!var:,-15!
echo !var!
endlocal
)
pause&goto :eof
[
Last edited by zw19750516 on 2008-4-3 at 12:49 AM ]
批处理之家新域名:www.bathome.net
第 5 楼
发表于 2008-04-03 00:44 · 中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687 发帖 1,467 注册 2005-08-08 12:00 21年会员 UID 44210
状态 离线
自己测试:
@echo off
for /f "tokens=1,2,3 delims=_" %%i in ('dir/b *.log') do echo %%i_%%j_%%k - %%i_%%j%%~xk
pause
[
Last edited by zh159 on 2008-4-3 at 12:46 AM ]
第 6 楼
发表于 2008-04-03 02:13 · 中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404 发帖 946 注册 2005-09-08 13:44 20年会员 UID 42345
状态 离线
@echo off
for /f "delims=" %%i in ('dir/b /a-d *.log') do set a=%%i&call echo %%a:~0,-15%%%%~xi
pause
简单!简单!再简单!
第 7 楼
发表于 2008-04-03 16:01 · 中国 北京 光环新网
初级用户
★
积分 32 发帖 11 注册 2008-03-08 22:19 18年会员 UID 112424 性别 男
状态 离线
Originally posted by zh159 at 2008-4-3 12:44 AM:
自己测试:
@echo off
for /f "tokens=1,2,3 delims=_" %%i in ('dir/b *.log') do echo %%i_%%j_%%k - %%i_%%j%%~xk
pause
[ Last edited by zh159 on 2008-4-3 at 12:46 AM ]
这个不错,受教了,^_^
第 8 楼
发表于 2008-04-07 19:30 · 中国 甘肃 兰州 电信
初级用户
★
积分 47 发帖 31 注册 2008-03-17 19:04 18年会员 UID 113236 性别 男
状态 离线
第 9 楼
发表于 2008-12-30 07:49 · 西班牙
新手上路
★
积分 5 发帖 3 注册 2006-12-05 12:30 19年会员 UID 72635 性别 男
状态 离线
试试这个看行不行!
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b ".\*.log"') do set filename=%%~na ren %%a !filename:~0,-13!.log
晕,没有看发贴的时间!
[
Last edited by nanoking on 2008-12-30 at 07:57 ]
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正