标题: 在局域网内如何复制文件?
[打印本页]
作者: laiguiyou
时间: 2007-4-23 00:39
标题: 在局域网内如何复制文件?
请大家多多指教,我是新手.
在局域网内有一个文件夹叫产品图片.里面放有很多的图片,会经常更新,然后其它电脑经常从这个文件夹中把图片复制到本地盘,如何用批处理把这些图片复制过来,并且只复制本地盘中没有的图片.也就是新图片.(有了的图片不用复制.)图片很多,有四五千张,如果今天只更新了三张图,执行批处理时只复制这三张,不要全部都复制,不然的话这样要很久.
作者: bjsh
时间: 2007-4-23 01:17
搜索一下吧;前面都有问过了;
至于你的问题的个别处就是 只更新新的图片;
用 if not exist就可以了
作者: flyinspace
时间: 2007-4-23 02:27
使用 XCOPY /d 用这个就可以做到。。
只复制比目标文件新的文件。
不过首先。你要把他的这个盘映射为本地盘符。。。这样方便很多。。。
可以使用 net use z: 共享路径 来添加
也可以右键我的电脑来添加
作者: snowbbbb
时间: 2007-4-23 03:09
是不是这样的?
if not exist 主机路径\*.jpg 本机路径\图片库\
作者: laiguiyou
时间: 2007-4-23 21:34
我是菜鸟,搜索过,没有找到,请指教
作者: laiguiyou
时间: 2007-4-23 21:42
我用这个不行的,会更新所有的图片
D:
cd database2007
cd 产品图片
copy \\super-server\公用文件\产品图片\*.* /d/y
作者: htysm
时间: 2007-4-24 00:07
代码暂时没有条件测试,如果有错误请跟帖。
---------------------------------------
@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
作者: laiguiyou
时间: 2007-4-24 02:56
提示有错误:
发生系统错误1219
不充许一个用户使用一个以上用户名与服务器或共享资源的多重边接.中断与此服务或共享资源的所有连接.然后再试一次.....
作者: laiguiyou
时间: 2007-4-24 03:01
没想到能写出那么好的批处理来,佩服
作者: laiguiyou
时间: 2007-4-24 03:07
因我是用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 ]
作者: htysm
时间: 2007-4-24 04:36
请把“产品图片”这个文件夹设置成共享文件夹。然后再试试。
作者: laiguiyou
时间: 2007-4-24 04:40
是服务器的吗?本来是共享的
作者: laiguiyou
时间: 2007-4-24 04:51
还有,我把前面那段建立网络影射和结尾取消网络影射去掉,执行后,不管有没有更新的图片,也全部更新,并且结束后,不能显示更新图片数量.显示更新图片num张
作者: htysm
时间: 2007-4-24 06:18
下列代码已测试过,在我的局域网中可以成功执行。
------------------------------------------------------------------------------------------------------------
@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 ]
作者: laiguiyou
时间: 2007-4-24 08:47
可以了,非常的谢谢.辛苦了.我可以交你这个朋友吗.QQ:136352354
作者: htysm
时间: 2007-4-24 10:13
在DOS联盟大家都是朋友呀。既使我不答帖,也会有更多热心的朋友答帖的。
在论坛里多多看帖子你就知道这里是高手如云的,我只是菜鸟呀。
可以加入这个群:18023953
作者: laiguiyou
时间: 2007-4-24 12:04
谢谢