![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 10:24 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 在局域网内如何复制文件? |
| 可打印版本 2,213 / 16 |
| 第1楼 laiguiyou | 发表于 2007-04-23 00:39 |
| 初级用户 发帖 12 积分 28 | |
|
在局域网内如何复制文件? 请大家多多指教,我是新手.
在局域网内有一个文件夹叫产品图片.里面放有很多的图片,会经常更新,然后其它电脑经常从这个文件夹中把图片复制到本地盘,如何用批处理把这些图片复制过来,并且只复制本地盘中没有的图片.也就是新图片.(有了的图片不用复制.)图片很多,有四五千张,如果今天只更新了三张图,执行批处理时只复制这三张,不要全部都复制,不然的话这样要很久. |
|
| 第2楼 bjsh | 发表于 2007-04-23 01:17 |
| 银牌会员 发帖 621 积分 2,000 | |
|
搜索一下吧;前面都有问过了;
至于你的问题的个别处就是 只更新新的图片; 用 if not exist就可以了 |
|
| 第3楼 flyinspace | 发表于 2007-04-23 02:27 |
| 银牌会员 发帖 517 积分 1,206 | |
|
使用 XCOPY /d 用这个就可以做到。。
只复制比目标文件新的文件。 不过首先。你要把他的这个盘映射为本地盘符。。。这样方便很多。。。 可以使用 net use z: 共享路径 来添加 也可以右键我的电脑来添加 |
|
| 第4楼 snowbbbb | 发表于 2007-04-23 03:09 |
| 初级用户 发帖 42 积分 118 | |
|
是不是这样的?
if not exist 主机路径\*.jpg 本机路径\图片库\ |
|
| 第5楼 laiguiyou | 发表于 2007-04-23 21:34 |
| 初级用户 发帖 12 积分 28 | |
|
我是菜鸟,搜索过,没有找到,请指教
|
|
| 第6楼 laiguiyou | 发表于 2007-04-23 21:42 |
| 初级用户 发帖 12 积分 28 | |
|
我用这个不行的,会更新所有的图片
D: cd database2007 cd 产品图片 copy \\super-server\公用文件\产品图片\*.* /d/y |
|
| 第7楼 htysm | 发表于 2007-04-24 00:07 |
| 高级用户 发帖 415 积分 866 | |
|
代码暂时没有条件测试,如果有错误请跟帖。
--------------------------------------- @echo off setlocal enabledelayedexpansion net use \\super-server\ipc$ /u:administrator || (echo 连接不成功按任意键退出。& pause>nul & exit) net use z: \\super-server\公用文件\产品图片 || echo 磁盘映射出现错误退出。& pause>nul & exit) echo.&echo 已成功将服务器上的产品图片文件映射为本地Z盘: set num=0 echo.&echo ==================== 正在更新,请耐心等待 ====================== for /f "delims=" %%i in ('dir /s/b z:\*.jpg') do ( if not exist d:\产品图片\%%~nxi (copy "%%i" d:\产品图片\ && set /a num+=1) ) echo.&echo.&echo if not "!num!" == "0" echo ====== 图片更新完毕,本次共更新图片!num!张 ====== else echo 没有需要更新的图片。 net use \\super-server\ipc$ /delete pause>nul |
|
| 第8楼 laiguiyou | 发表于 2007-04-24 02:56 |
| 初级用户 发帖 12 积分 28 | |
|
提示有错误:
发生系统错误1219 不充许一个用户使用一个以上用户名与服务器或共享资源的多重边接.中断与此服务或共享资源的所有连接.然后再试一次..... |
|
| 第9楼 laiguiyou | 发表于 2007-04-24 03:01 |
| 初级用户 发帖 12 积分 28 | |
|
没想到能写出那么好的批处理来,佩服
|
|
| 第10楼 laiguiyou | 发表于 2007-04-24 03:07 |
| 初级用户 发帖 12 积分 28 | |
|
因我是用admin用户名登陆windows的,所以我把administrator改为admin,运行后就出现以下信息:
本地名称 远程名称 \\super-server\ip$ 资源类型 IPC 状态 OK #打开 0 #连接 1 命令运行成功. 命令运行成功 然后就没反应了 我的操作系统为windows server 2003 [ Last edited by laiguiyou on 2007-4-23 at 02:42 PM ] |
|
| 第11楼 htysm | 发表于 2007-04-24 04:36 |
| 高级用户 发帖 415 积分 866 | |
|
请把“产品图片”这个文件夹设置成共享文件夹。然后再试试。
|
|
| 第12楼 laiguiyou | 发表于 2007-04-24 04:40 |
| 初级用户 发帖 12 积分 28 | |
|
是服务器的吗?本来是共享的
|
|
| 第13楼 laiguiyou | 发表于 2007-04-24 04:51 |
| 初级用户 发帖 12 积分 28 | |
|
还有,我把前面那段建立网络影射和结尾取消网络影射去掉,执行后,不管有没有更新的图片,也全部更新,并且结束后,不能显示更新图片数量.显示更新图片num张
|
|
| 第14楼 htysm | 发表于 2007-04-24 06:18 |
| 高级用户 发帖 415 积分 866 | |
|
下列代码已测试过,在我的局域网中可以成功执行。
------------------------------------------------------------------------------------------------------------ @echo off dir z:>nul 2>nul || (net use z: \\super-sever\公用文件\产品图片 || (echo 磁盘映射出现错误退出。& pause>nul & exit)) setlocal enabledelayedexpansion set num=0 set share_=d:\产品图片 echo.&echo ==================== 正在更新,请耐心等待 ===================== for /f "delims=" %%i in ('dir /s/b z:\*.jpg') do ( if not exist %share_%\%%~nxi (copy "%%i" %share_%\ && set /a num+=1) ) echo.&echo.&echo net use z: /delete >nul 2>nul if not "!num!" == "0" ( echo ====== 图片更新完毕,本次共更新图片!num!张 ====== ) else echo 本次没有需要更新的图片。 echo.&echo.&echo 按任意键退出。 pause>nul [ Last edited by htysm on 2007-4-24 at 06:37 AM ] |
|
| 第15楼 laiguiyou | 发表于 2007-04-24 08:47 |
| 初级用户 发帖 12 积分 28 | |
|
可以了,非常的谢谢.辛苦了.我可以交你这个朋友吗.QQ:136352354
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |