![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-24 22:16 |
共 47,813 主题排行 / 349,918 发帖 / 今日 1 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何为多个子目录中的txt批量改文件扩展名. |
| 可打印版本 2,661 / 22 |
| 第1楼 zzhh612 | 发表于 2007-03-30 13:04 |
| 中级用户 发帖 103 积分 278 | |
|
如何为多个子目录中的txt批量改文件扩展名. 在一个目录下的若干个子目录中有许多以文本方式保存的C代码.
我怎样才能用一个批处理将这些以TXT为扩展名的代码文档变成以.C为扩展名的C源文件. [ Last edited by zzhh612 on 2007-3-31 at 01:48 AM ] |
|
| 第2楼 flyinspace | 发表于 2007-03-30 13:14 |
| 银牌会员 发帖 517 积分 1,206 | |
|
哦。很简单啊。。
|
|
| 第3楼 flyinspace | 发表于 2007-03-30 13:16 |
| 银牌会员 发帖 517 积分 1,206 | |
|
@echo off
dir /b /a *.txt>1.txt for /f "tokens=1,2 delims=. " %%i in (1.txt) do ren %%i.txt %%i.c |
|
| 第4楼 MagiCube | 发表于 2007-03-30 13:31 |
| 新手上路 发帖 2 积分 4 | |
|
在XP下面,用命令ren *.txt *.c就可以把当前目录下所有.txt文件重命名为.c文件啦
初来乍到,看到这里很多高手,很多复杂的语法还不懂,像这个应该没有必要用复杂的方法吧 |
|
| 第5楼 flyinspace | 发表于 2007-03-30 13:32 |
| 银牌会员 发帖 517 积分 1,206 | |
|
呵呵,头脑发昏了。
|
|
| 第6楼 zzhh612 | 发表于 2007-03-30 13:43 |
| 中级用户 发帖 103 积分 278 | |
|
不知flyinspace
试过了没有.目录列表应用dir /b /s才对.这样可以把文件名写入1.txt,但在执行重命名文件时,会提示找不到文件的路径.兄弟的代码怕是需要改进吧.也许思路是对的. 我想用批处理解决的原因是文本存在于多个不同级数的子目录下,单用命令REN来做很是麻烦的,当然WINDOWS下有批量改名的软件,我是想在实践中学一学批处理.不能总只靠一种方法来解决问题吧. [ Last edited by zzhh612 on 2007-3-30 at 01:51 PM ] |
|
| 第7楼 MagiCube | 发表于 2007-03-30 14:00 |
| 新手上路 发帖 2 积分 4 | |
|
有理
|
|
| 第8楼 flyinspace | 发表于 2007-03-30 14:08 |
| 银牌会员 发帖 517 积分 1,206 | |
|
呵,都说过了呀。
没有注意的。。。 忘记加几个参数了。 还有那个名字可以随便写的。 不一定是.txt 随便写个。fly也行啊。 |
|
| 第9楼 flyinspace | 发表于 2007-03-30 14:10 |
| 银牌会员 发帖 517 积分 1,206 | |
|
试过了没有.目录列表应用dir /b /s才对.这样可以把文件名写入1.txt,但在执行重命名文件时,会提示找不到文件的路径.兄弟的代码怕是需要改进吧.也许思路是对的.
?? 不是吧? 这个dir /b /s是可以随便写的。。 写dir /s /b都一样。。 |
|
| 第10楼 flyinspace | 发表于 2007-03-30 14:13 |
| 银牌会员 发帖 517 积分 1,206 | |
|
噢。开始你的要求里面没有子目录的。
就没有加上 /s参数。 |
|
| 第11楼 flyinspace | 发表于 2007-03-30 14:15 |
| 银牌会员 发帖 517 积分 1,206 | |
|
@echo off
dir /b /a /s *.txt>1.bpx for /f "tokens=1,2 delims=. " %%i in (1.bpx) do ren %%i.txt %%i.c 加/a参数是为了防止有隐藏文件的出现。 |
|
| 第12楼 zzhh612 | 发表于 2007-03-30 14:48 |
| 中级用户 发帖 103 积分 278 | |
|
flyinspace的代码在执行时仍会提示系统找不到文件.
没有能改名,只有根目录下的被改了, 我自己得来的,试过了还行 @echo off FOR /R c:\test %%a IN (*.txt) DO (ren %%a %%~na.c) pause 只是文件名不能有逗号,当然这本来也不规范,所以也没有想法来包括它了,如果非要包括进来,也只有高手来解决了.. [ Last edited by zzhh612 on 2007-3-30 at 02:57 PM ] |
|
| 第13楼 flyinspace | 发表于 2007-03-30 15:06 |
| 银牌会员 发帖 517 积分 1,206 | |
|
哦。我自己试过了啊?
所有的目录下的文件都可以更改? 要想最规范的话。还要加上不少判断的语句。 但你想要麻烦么? |
|
| 第14楼 bjsh | 发表于 2007-03-30 21:18 |
| 银牌会员 发帖 621 积分 2,000 | |
|
flyinspace的作息时间怎么黑白颠倒啊????
|
|
| 第15楼 zzhh612 | 发表于 2007-03-31 01:39 |
| 中级用户 发帖 103 积分 278 | |
|
flyinspace的代码在执行时仍会提示系统找不到文件.
所有子目录下的TXT文件一个也没有改. 不知你是怎样运行成功的. |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |