中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-26 17:34
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何在局域内使用XCOPY更新文件,谢谢! 查看 926 回复 5
楼 主 [求助]如何在局域内使用XCOPY更新文件,谢谢! 发表于 2008-09-02 17:10 ·  中国 广东 中山 电信
新手上路
积分 8
发帖 3
注册 2008-09-02 16:29
17年会员
UID 124593
性别 男
状态 离线
求助用XCOPY做软件更新。
我要更新一个文件。要把局域网内的若干台机器C盘中的一个a.exe 与a.mdb覆盖。但是其中机器名与IP地址均不连续。
我尝试写了一个 /y/u 参数只在有同名文件时才覆盖,这样扫描所有机器。在命令行中可实现。但在批处理中如果没有同名文件不知到为什么就会提示写入文件或文件夹。
我又试一次写了把每个IP赋给一个 IP* 然后把 \\%ip*%\c$\ 更新。但是不知如何去循环。
先感谢每位帮忙的朋友。谢谢。
2 发表于 2008-09-02 17:23 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
假设所有的IP地址都存放在iplist.txt文件里面
@echo off
for /f "tokens=*" %%a in (iplist.txt) do (
echo xopy /y /u "a.exe" "\\%%a\C$\"
echo xopy /y /u "a.mdb" "\\%%a\C$\"
)
3 发表于 2008-09-02 18:26 ·  中国 上海 电信
高级用户
★★★
积分 916
发帖 377
注册 2004-03-08 00:00
22年会员
UID 19523
性别 男
状态 离线
以前有位朋友发表了一个代码,不过搜不到原链接,你可以尝试修改一下,主要是网段部分的修改和xcopy参数的测试,

@echo off
::echo 将要复制的文件拖放到这个批处理上即可。
ipconfig /all |find /i "ip address" || (echo 没有连网,按任意键程序退出 & pause>nul & exit)
for /f "tokens=15" %%i in ('ipconfig /all^|find /i "ip address"') do (
for /f "tokens=1-3 delims=." %%a in ("%%i") do (
if %%a EQU 218 (
for /l %%e in (218,1,220) do (
ping %%a.%%b.%%c.%%e -n 1 -l 1 -w 1 &&(
for /f "skip=7 eol=命" %%t in ('net view \\%%a.%%b.%%c.%%e') do (
if "%%t" EQU "SAV" (
net use \\%%a.%%b.%%c.%%e\%%t /u:administrator && xcopy %1 /t \\%%a.%%b.%%c.%%e\%%t
))
))
))
)
pause
4 发表于 2008-09-03 08:42 ·  中国 广东 中山 电信
新手上路
积分 8
发帖 3
注册 2008-09-02 16:29
17年会员
UID 124593
性别 男
状态 离线
@echo off
del \\IP\C$\Documents and Settings\a.mdb /f/s/q/a
xcopy /y /u a.exe \\IP\C$\
xcopy /y /u a.mdb \\IP\C$\
echo 按任意键退出
pause>nul
exit
得到的结果如下:
找不到 C:\Documents and Settings\mm.mdb
目标 C:\a.exe 是文件名
还是目录名
(F = 文件,D = 目录)? f
a.exe
复制了 1 个文件
目标 C:\a.mdb 是文件名
还是目录名
(F = 文件,D = 目录)? f
a.mdb
复制了 1 个文件
按任意键退出
如果原来是没有这个文件的也会写入文件。有办法忽略吗?
5 发表于 2008-09-03 11:09 ·  中国 江苏 常州 武进区 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
怎么我这里用xcopy命令 没上面提示
楼主要是更新的话 可以试试 replace "a.exe" "\\IP\C$"
简单!简单!再简单!
6 非常感谢各位。 发表于 2008-09-03 17:51 ·  中国 广东 中山 电信
新手上路
积分 8
发帖 3
注册 2008-09-02 16:29
17年会员
UID 124593
性别 男
状态 离线
主要是以1楼的网友为蓝本
for /f "tokens=*" %%a in (iplist.txt) do (
del \\%%a\c$\"Documents and Settings"\a.mdb /s/q/f/a ***这里的用户文档不知到为什么要为“引号“,开始时不用的正常,但合来会出现找不到路径。加了”引号“就没有问题了。***
xcopy /u /y "a.exe" "\\%%a\c$\a\" ***这里因为定义了目标文件名,造成要提示***
xcopy /u /y "a.mdb" "\\%%a\c$\a\"
)
但有一具缺点就是(del \\%%a\c$\"Documents and Settings"\a.mdb) 很慢但是没上域不能用策略。只凑和着用了。
另附上一个开机的批处理(在域中通过策略使用)。留意源权限与用户的设置。先要自己在管理员调试一下。
@echo off
del c:\Documents and Settings\mm.mdb /f/s/q/a
xcopy \\a\a.exe C:\a\ /y /u
xcopy \\a\a.mdb C:\a\ /y /u
echo 已更新按任意键退出
pause>nul
exit
非常感谢各位。
论坛跳转: