中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 看完相关贴后仍没想到解决方法(重命名)
作者:
标题: 看完相关贴后仍没想到解决方法(重命名) 上一主题 | 下一主题
pullyong
新手上路





积分 6
发帖 3
注册 2008-7-25
状态 离线
『楼 主』:  看完相关贴后仍没想到解决方法(重命名)

看了相关的贴都是关于文件和文件名一一对应的改法。现在我pic目录下有若干JPG,文件名为1.jpg,2.jpg,....n.jpg但是不一定1~n都有,同时有name.txt中存放了1~N的文件名,也就是说我想把想应的jpg文件改成在TXT文件中相对应的文件名。请大家帮帮忙。
注:文件和文件名不是一一对应,可能文件中少了33.jpg,58.jpg但TXT中仍存在33.jpg和58.jpg的文件名!
先谢谢大家了!

[ Last edited by pullyong on 2008-7-27 at 02:37 PM ]

2008-7-27 10:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:  

先假设所有的jpg文件和name.txt是放在d:\pic文件夹内,实际应用请楼主自己修改:
@echo off&setlocal enabledelayedexpansion
set "n=-1"
for /f "delims=" %%i in ('dir /s /a-d /b d:\pic\*.jpg') do (
    set /a n+=1&call :lp
    ren "%%i" !str!
)
echo 全部搞定。&pause>nul&goto :eof
:lp
if %n% equ 0 (set "m=") else (set "m=skip=%n%")
for /f "%m% dielims=" %%i in (name.txt) do set "str=%%i"&goto :eof




批处理之家新域名:www.bathome.net
2008-7-27 12:22
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 3 楼』:  

写了一个 但不知道是否有同名文件存在 备份后 试
@echo off
for /f "tokens=*" %%i in ('dir /b /s /a-d *.jpg') do call:lp "%%i"
:lp
for /f "usebackq tokens=*" %%j in ("name.txt") do (
    if not defined %%j set %%j=a&ren %1 "%%j"&goto :eof)
pause




简单!简单!再简单!
2008-7-27 12:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 4 楼』:  

发现来dos论坛后 头大了很多……郁闷 极度抑郁 ……
每次看到这类问题  我都出冷汗的……



综合型编程论坛

我的作品索引
  
2008-7-27 14:14
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
pullyong
新手上路





积分 6
发帖 3
注册 2008-7-25
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by terse at 2008-7-27 12:41 PM:
写了一个 但不知道是否有同名文件存在 备份后 试
[code]
@echo off
for /f "tokens=*" %%i in ('dir /b /s /a-d *.jpg') do call:lp "%%i"
:lp
for /f "useb ...

谢谢!问题解决了!能帮我解释下每句什么意思吗???

2008-7-27 14:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
pullyong
新手上路





积分 6
发帖 3
注册 2008-7-25
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by bat-zw at 2008-7-27 12:22 PM:
先假设所有的jpg文件和name.txt是放在d:\pic文件夹内,实际应用请楼主自己修改:
[code]
@echo off&setlocal enabledelayedexpansion
set "n=-1"
for /f "d ...

提示命令语法错误,但仍然很感谢!

2008-7-27 14:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: