中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (求助)如何编写一个.bat文件实现文件更名批处理
« [1] [2] »
作者:
标题: (求助)如何编写一个.bat文件实现文件更名批处理 上一主题 | 下一主题
tommy725
初级用户





积分 36
发帖 14
注册 2007-3-31
状态 离线
『楼 主』:  (求助)如何编写一个.bat文件实现文件更名批处理

我遇到一个问题,比如,我有几百个.pdf文件
例如: central aaa 01.pdf
        akurss bbs 99.pdf
        sskpk  p12 980 ok.pdf
       airchina lufthansa uk mu500.pdf
        92 years anniver.pdf     
.........

我想做的是编一个批处理文件xxx.cmd 运行一次可以把以上所有pdf文件中的"空格"自动改为"-".  运行xxx.cmd文件后,以上PDF文件即更名为以下并保存:
        central-aaa-01.pdf
        akurss-bbs-99.pdf
        sskpk-p12-980-ok.pdf
       airchina-lufthansa-uk-mu500.pdf
       92-years-anniver.pdf  
     .........
请问如何编写,能否给出列子,谢谢啊

[ Last edited by tommy725 on 2007-4-2 at 06:55 AM ]

2007-3-31 18:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

!a: =-!

2007-3-31 18:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 3 楼』:  

这个

  Quote:

  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /a *.pdf') do set "old_name=%%a" &call :re_name
  3. goto exit
  4. :re_name
  5. set "new_name=%old_name: =-%"
  6. ren "%old_name%" "%new_name%"
  7. :exit
         BJSH发表于:  2007-03-31  09:37

[ Last edited by bjsh on 2007-3-31 at 09:47 AM ]

   此帖被 +4 点积分        点击查看详情   
评分人:【 huzixuan 分数: +4  时间:2007-4-1 09:02


2007-3-31 22:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zzhh612
中级用户




积分 278
发帖 103
注册 2006-10-21
状态 离线
『第 4 楼』:  上面的答案试了一下,没成功.

有待改进工作

2007-3-31 23:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 5 楼』:  

我自己试着怎么没问题呢??

ls的说一下出错信息

2007-4-1 00:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tommy725
初级用户





积分 36
发帖 14
注册 2007-3-31
状态 离线
『第 6 楼』:  

非常谢谢bjsh,我试一下看看.不过我还是看不懂,你如果能给我解释一下每句的含义或者功能,那就更加感谢了.

2007-4-1 05:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 7 楼』:  

for /f "delims=" %%a in ('dir /b /a *.pdf') do set "old_name=%%a" &call :re_name

对于这一句话?想问个问题?

('dir /b /a *.pdf')里面的参数是不是只会执行一次?然后把把所有变量放内存里?等程序一个一个的读取?
当里面读取的内容非常多的时候。会不会造成机器假死?



知,不觉多。不知,乃求知
2007-4-1 07:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huzixuan
高级用户




积分 537
发帖 219
注册 2006-10-31
来自 芜湖
状态 离线
『第 8 楼』:  

刚才写错了.

@echo off
setlocal enabledelayedexpansion
for %%h in (*.pdf) do (
set str=%%h
set str=!str: =-!
ren "%%h" "!str!")

[ Last edited by huzixuan on 2007-4-1 at 08:54 AM ]



江湖远
碧空长
路茫茫

    一个人漫无目的的奔跑,风,刺骨的冷....
2007-4-1 08:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tommy725
初级用户





积分 36
发帖 14
注册 2007-3-31
状态 离线
『第 9 楼』:  

谢谢大家,我可不可以这样测试啊,edit file.cmd,然后把代码写进去保存,然后在所在文件夹下运行这个文件.所在文件夹下有三个测试的.pdf文档.但是这个结果怎么出现这个啊:
a duplicate file name exists,or the file can not be found
a duplicate file name exists,or the file can not be found
a duplicate file name exists,or the file can not be found

2007-4-1 17:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 10 楼』:  

直接运行我写的那个;也出现这种错误吗???

2007-4-1 22:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wuwuwuming
初级用户





积分 37
发帖 18
注册 2007-4-1
状态 离线
『第 11 楼』:  

好是好,可是看不懂,真是郁闷~~~~

2007-4-1 23:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tommy725
初级用户





积分 36
发帖 14
注册 2007-3-31
状态 离线
『第 12 楼』:  

我运行了
@echo off
for /f "delims= " %%a in ('dir /b/a *.pdf') do
set "old_name=%%a" &call :re_name
goto exit
:re_name
set "new_name=%old_name:=-%"
ren "%old_name%" "%new_name%"
:exit
运行后说命令的语法不正确
the syntax of the command is incorrect.

2007-4-2 19:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qingfushuan
高级用户





积分 502
发帖 327
注册 2006-12-30
状态 离线
『第 13 楼』:  试试这个

我刚才写的,经测试可以更名的

@echo off&setlocal enabledelayedexpansion
for /f "delims=." %%a in ('dir /a-d /b *.pdf') do (
  set str=%%a
  set str=!str: =-!
  ren "%%a".pdf !str!.pdf
)
pause


但是你的sskpk  p12 980 ok.pdf有两个空格所以更名出来就是

sskpk--p12-980-ok.pdf了,这样子将就用可以了不

2007-4-2 21:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tommy725
初级用户





积分 36
发帖 14
注册 2007-3-31
状态 离线
『第 14 楼』:  

两个空格是我输入错误,如果可以空格变"-"就可以

2007-4-2 22:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kcdsw
中级用户





积分 404
发帖 179
注册 2006-3-30
状态 离线
『第 15 楼』:  

ren "* *.pdf"  "*-*.pdf"

2007-4-2 22:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: