中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何拷贝所有文件夹中一个最新的文件到其他文件夹?
« [1] [2] »
作者:
标题: 如何拷贝所有文件夹中一个最新的文件到其他文件夹? 上一主题 | 下一主题
chenai79921
初级用户





积分 120
发帖 48
注册 2007-12-1
状态 离线
『楼 主』:  如何拷贝所有文件夹中一个最新的文件到其他文件夹?



test文件夹下有若干文件夹 test1  test2 test3 ..等等 这个文件夹中有若干文件,我想把每个文件夹中最新的一个文件拷贝到d盘 请问如何操作谢谢!

2007-12-19 13:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chenai79921
初级用户





积分 120
发帖 48
注册 2007-12-1
状态 离线
『第 2 楼』:  

在每个文件夹中,都要找该文件夹中最新的文件,并且文件夹名字不给定,否则的话要方便许多了...

[ Last edited by chenai79921 on 2007-12-19 at 02:08 PM ]

2007-12-19 14:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chenai79921
初级用户





积分 120
发帖 48
注册 2007-12-1
状态 离线
『第 3 楼』:  

现在我把文件夹的名字写进了一个aa.txt,,方便点了,然后怎么写~~

@echo off
dir /ad-r-a-h-s /b>aa.txt

[ Last edited by chenai79921 on 2007-12-19 at 03:12 PM ]

2007-12-19 15:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 4 楼』:  

for /f %a in ('dir /ad /b') do (
pushd "%~dpnxa"
call :scopy
popd
)
goto :eof

:scopy
for /f %i in ("dir /a-d /od") do set scopy="%~dpnxi"
copy %scopy% D:\

2007-12-19 15:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenai79921
初级用户





积分 120
发帖 48
注册 2007-12-1
状态 离线
『第 5 楼』:  

能解释下"%~dpnxa" 是什么意思吗? 或者提供相关帮助文档或链接 非常感谢~~

2007-12-19 16:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 6 楼』:  

for /?

2007-12-19 16:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenai79921
初级用户





积分 120
发帖 48
注册 2007-12-1
状态 离线
『第 7 楼』:  

不好意思 运行也没有成功

2007-12-19 16:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 8 楼』:  

for /f %%a in ('dir /ad /b') do (
pushd "%%~dpnxa"
call :scopy
popd
)
goto :eof

:scopy
for /f %%i in ("dir /a-d /od") do set scopy="%%~dpnxi"
copy %scopy% D:\

这个批处理要放在你test文件夹下运行

2007-12-19 16:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenai79921
初级用户





积分 120
发帖 48
注册 2007-12-1
状态 离线
『第 9 楼』:  

不好意思 前面运行的时候 已经加过%了 ,放在test文件夹下运行 也没有成功

您运行测试过吗?

2007-12-19 16:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 10 楼』:  

for /f %%a in ('dir /ad /b') do (
pushd "%%~dpnxa"
call :scopy
popd
)
goto :eof

:scopy
for /f %%i in ("dir /a-d /od /b") do set scopy="%%~dpnxi"
copy %scopy% D:\


抱歉,口气冲了点,我是少加了一个参数

[ Last edited by everest79 on 2007-12-19 at 05:31 PM ]

2007-12-19 17:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenai79921
初级用户





积分 120
发帖 48
注册 2007-12-1
状态 离线
『第 11 楼』:  

饿~~大哥好像又要麻烦你了。。。

运行后提示“系统找不到指定文件”

我看了下命令行后的结果  
提示
copy test1\dir d:\
copy test2\dir d:\
系统找不到指定文件

"%%~dpnxi" 这里面的 i 照道理应该是文件夹中最新文件的名字了,,运行出来怎么变成dir了?

[ Last edited by chenai79921 on 2007-12-19 at 07:19 PM ]

2007-12-19 19:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chenai79921
初级用户





积分 120
发帖 48
注册 2007-12-1
状态 离线
『第 12 楼』:  

知道了

in ("dir /a-d /od /b")  这里应该是单引号饿,呵呵 in ('dir /a-d /od /b')

everest79大哥很热心的,非常感谢啊!

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





积分 120
发帖 48
注册 2007-12-1
状态 离线
『第 13 楼』:  

我想把这个BAT文件放在任何地方,,如果test文件夹在f盘下 即  f:\test
那我是不是应该这样改


for /f %%A in ('dir /ad /b F:\test\') do (
pushd "%%~dpnxA"
call :scopy
popd
)
goto :eof

:scopy
for /f %%I in ('dir /a-d /od /b /s F:\test\') do (
set scopy="%%~dpnxI"
copy %scopy% D:\
)

运行之后还是有点问题.........

2007-12-19 20:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 14 楼』:  

for /f "delims=" %%a in ('dir /ad /b /s F:\test') do (
    for /f "delims=" %%b in ('dir /a-d /b /s "%%a"') do (
        set scopy="%%~dpnxb"
    )
    call copy %%scopy%% D:\
)
pause

2007-12-20 10:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chenai79921
初级用户





积分 120
发帖 48
注册 2007-12-1
状态 离线
『第 15 楼』:  

成功了,,再次感谢everest79

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


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



论坛跳转: