中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]一个关于更名的BAT的写法或思路
作者:
标题: [求助]一个关于更名的BAT的写法或思路 上一主题 | 下一主题
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『楼 主』:  [求助]一个关于更名的BAT的写法或思路

请大帮一下:
在某个文件夹内有多个或一个数量不等,且是加长名的*.TXT文件。

想将些TXT,复制至其它文件夹内,后将它们更名,(按时间或什么的不重复就可)。(原文件夹的内的TXT名称不变)

将各位写一下。。。

或者提示一下,怎样“模糊”查询,哪些数量不等的文件。。。。

2008-11-30 09:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sea1112
初级用户





积分 131
发帖 119
注册 2007-6-12
来自 gz
状态 离线
『第 2 楼』:  

看不明你说什么,给个图例说解一下吧。

2008-11-30 09:43
查看资料  发送邮件  发短消息 网志  OICQ (24278528)  编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 3 楼』:  

A文件夹有:001.txt
                 1233er4.txt
                 {7C709B24-F250-4B5C-9B71-3993875B0E95}.txt
                 {7C709B24-F250-4B5C-9B71-3993875B0rrgg5}.txt
                 .............等不规则的文件
想将这些文件复制至
B文件夹,且更名为:11.30.9.32.txt
                            11.30.9.33.txt
                            11.30.9.34.txt
                           .........等,用时间命名或用其它不重复的命名方法。

2008-11-30 09:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kissbill
初级用户





积分 61
发帖 35
注册 2008-10-4
状态 离线
『第 4 楼』:  

看下这个能用否
@echo off
for /f "delims=" %%i in ('dir /b /a-d *.txt') do (copy "%%i" "b\123%%~ni.txt" >nul 2>nul)
pause


2008-11-30 11:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sea1112
初级用户





积分 131
发帖 119
注册 2007-6-12
来自 gz
状态 离线
『第 5 楼』:  

::把所有*.txt文件复制到d:\b\目录,以数字改名
@echo off
for /f "delims=" %%i in ('dir /b/s *.txt') do (set /a num+=1&&call copy %%i d:\b\%num%.txt /y)


::把所有*.txt文件复制到d:\b\目录,以时间改名
@echo off
for /f "delims=" %%i in ('dir /b/s *.txt') do (call copy %%i d:\b\%time:~0,2%.%time:~3,2%.%time:~6,2%.txt.txt /y)

2008-11-30 21:52
查看资料  发送邮件  发短消息 网志  OICQ (24278528)  编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 6 楼』:  

先谢一下楼上两位
但代码均不可用。

将sea1112的代码修改一下可以用:
@echo off
for /f "delims=" %%i in ('dir /b/s *.txt') do (set /a num+=1&&call copy %%i d:\b\%%num%%.txt /y)


但它不能对中文名的TXT作用。还请再改改。。。谢谢了

2008-11-30 22:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sea1112
初级用户





积分 131
发帖 119
注册 2007-6-12
来自 gz
状态 离线
『第 7 楼』:  

@echo off
for /f "delims=" %%i in ('dir /b/s *.txt') do (set /a num+=1&&call copy "%%i" "d:\b\%%num%%.txt" /y)

%%i改为“%%i”就好了。是copy 后边的变量加""
为什么要%%num%%这样啊,
%num%就可以了。

[ Last edited by sea1112 on 2008-11-30 at 23:22 ]

2008-11-30 23:13
查看资料  发送邮件  发短消息 网志  OICQ (24278528)  编辑帖子  回复  引用回复
cad55
高级用户





积分 620
发帖 329
注册 2007-12-5
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by sea1112 at 2008-11-30 11:13 PM:
@echo off
for /f "delims=" %%i in ('dir /b/s *.txt') do (set /a num+=1&&call copy "%%i" d:\b\%%num%%.txt /y)

%%i改为“%%i”就好了。是copy 后边的变量加 ...

好,,可以了

太感谢了

(但%num%不可以。。。)

[ Last edited by cad55 on 2008-11-30 at 23:18 ]

2008-11-30 23:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sea1112
初级用户





积分 131
发帖 119
注册 2007-6-12
来自 gz
状态 离线
『第 9 楼』:  

那就用%%num%%吧,给我+分
^_^

有问题一定帮你

   此帖被 +5 点积分       点击查看详情   
评分人:【 cad55 分数: +5  时间:2008-11-30 23:25


2008-11-30 23:24
查看资料  发送邮件  发短消息 网志  OICQ (24278528)  编辑帖子  回复  引用回复

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


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



论坛跳转: