![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 22:52 |
共 48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何拷贝所有文件夹中一个最新的文件到其他文件夹? |
| 可打印版本 2,023 / 17 |
| 第1楼 chenai79921 | 发表于 2007-12-19 13:50 |
| 初级用户 发帖 48 积分 120 | |
|
如何拷贝所有文件夹中一个最新的文件到其他文件夹? 例
test文件夹下有若干文件夹 test1 test2 test3 ..等等 这个文件夹中有若干文件,我想把每个文件夹中最新的一个文件拷贝到d盘 请问如何操作谢谢! |
|
| 第2楼 chenai79921 | 发表于 2007-12-19 14:06 |
| 初级用户 发帖 48 积分 120 | |
|
在每个文件夹中,都要找该文件夹中最新的文件,并且文件夹名字不给定,否则的话要方便许多了...
[ Last edited by chenai79921 on 2007-12-19 at 02:08 PM ] |
|
| 第3楼 chenai79921 | 发表于 2007-12-19 15:07 |
| 初级用户 发帖 48 积分 120 | |
|
现在我把文件夹的名字写进了一个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 ] |
|
| 第4楼 everest79 | 发表于 2007-12-19 15:53 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
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:\ |
|
| 第5楼 chenai79921 | 发表于 2007-12-19 16:11 |
| 初级用户 发帖 48 积分 120 | |
|
能解释下"%~dpnxa" 是什么意思吗? 或者提供相关帮助文档或链接 非常感谢~~
|
|
| 第6楼 everest79 | 发表于 2007-12-19 16:16 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
for /?
|
|
| 第7楼 chenai79921 | 发表于 2007-12-19 16:18 |
| 初级用户 发帖 48 积分 120 | |
|
不好意思 运行也没有成功
|
|
| 第8楼 everest79 | 发表于 2007-12-19 16:30 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
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文件夹下运行 |
|
| 第9楼 chenai79921 | 发表于 2007-12-19 16:38 |
| 初级用户 发帖 48 积分 120 | |
|
不好意思 前面运行的时候 已经加过%了 ,放在test文件夹下运行 也没有成功
您运行测试过吗? |
|
| 第10楼 everest79 | 发表于 2007-12-19 17:23 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
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 ] |
|
| 第11楼 chenai79921 | 发表于 2007-12-19 19:14 |
| 初级用户 发帖 48 积分 120 | |
|
饿~~大哥好像又要麻烦你了。。。
运行后提示“系统找不到指定文件” 我看了下命令行后的结果 提示 copy test1\dir d:\ copy test2\dir d:\ 系统找不到指定文件 "%%~dpnxi" 这里面的 i 照道理应该是文件夹中最新文件的名字了,,运行出来怎么变成dir了? [ Last edited by chenai79921 on 2007-12-19 at 07:19 PM ] |
|
| 第12楼 chenai79921 | 发表于 2007-12-19 19:22 |
| 初级用户 发帖 48 积分 120 | |
|
知道了
in ("dir /a-d /od /b") 这里应该是单引号饿,呵呵 in ('dir /a-d /od /b') everest79大哥很热心的,非常感谢啊! |
|
| 第13楼 chenai79921 | 发表于 2007-12-19 20:02 |
| 初级用户 发帖 48 积分 120 | |
|
我想把这个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:\ ) 运行之后还是有点问题......... |
|
| 第14楼 everest79 | 发表于 2007-12-20 10:44 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
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 |
|
| 第15楼 chenai79921 | 发表于 2007-12-20 15:47 |
| 初级用户 发帖 48 积分 120 | |
|
成功了,,再次感谢everest79
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |