中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 03:27
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 文件批量命名 查看 803 回复 3
楼 主 文件批量命名 发表于 2007-01-13 03:28 ·  IANA 局域网IP(Private-Use)
中级用户
★★
蝴蝶之吻
积分 430
发帖 177
注册 2006-09-20 12:00
19年会员
UID 63170
来自 广东深圳
状态 离线

for %%z in (c d) do (
for /f "tokens=*" %%i in ('dir /a-d /s /b "%%z:\zou.zzx"') do (
echo.%%i>>"%cd%\zou.txt"
))

zou.txt结果是:

c:\z\ubb\zou.zzx
c:\age\zou.zzx
d:\zouzhxi\image\player_images\zou.zzx
d:\zouzhxi\image\webimages\zou.zzx

我想把这些文件统一复制到一个名为(zou)的文件夹里.这时出现问题了.
因为,所有文件名是一样的.最终也只有一个zou.zzx的文件.

让复制出来的文件前面加上(序号_zou.zzx)这样的名字,

zou文件夹里变成这样的:
1_zou.zzx
2_zou.zzx
3_zou.zzx
...


能不能在里边加上一段:
set n=0
set /a n=n+1

可不可以呀...

有什么办法可以做到了...谢谢...
2 发表于 2007-01-13 03:34 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

@echo off&Setlocal EnableDelayedExpansion
set num=1
for /f "delims=" %%a in (zou.txt) do (
copy "%%a" zou\!num!_zou.zzx
set /a num+=1
)
pause
::没有测试,试试看。
3 发表于 2007-01-13 03:49 ·  IANA 局域网IP(Private-Use)
中级用户
★★
蝴蝶之吻
积分 430
发帖 177
注册 2006-09-20 12:00
19年会员
UID 63170
来自 广东深圳
状态 离线
我试了.不行了...

for %%z in (c d) do (
for /f "tokens=*" %%i in ('dir /a-d /s /b "%%z:\zou.zzx"') do (
echo.copy "%%i" "%cd%\Recycled_file\">>"%cd%\py.cmd"
))
call "%cd%\py.cmd"

能不能在"%cd%\Recycled_file\(这里先加上序号)_zou.zzx"
在py.cmd文件是这样的.

copy "c:\z\ubb\zou.zzx" "%cd%\Recycled_file\1_zou.zzx"
copy "c:\age\zou.zzx" "%cd%\Recycled_file\2_zou.zzx"
4 发表于 2007-01-13 03:52 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  我试了我的,是可行的。不知道你为什么不行。

  你的思路复杂了。
论坛跳转: