中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 15:36
47,811 主题排行 / 349,896 发帖 / 今日 1 篇 / 48,254 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]如何在局域内使用XCOPY更新文件,谢谢!
可打印版本  961 / 5
第1楼 never10 发表于 2008-09-02 17:10
新手上路 发帖 3 积分 8
[求助]如何在局域内使用XCOPY更新文件,谢谢!
求助用XCOPY做软件更新。
我要更新一个文件。要把局域网内的若干台机器C盘中的一个a.exe 与a.mdb覆盖。但是其中机器名与IP地址均不连续。
我尝试写了一个 /y/u 参数只在有同名文件时才覆盖,这样扫描所有机器。在命令行中可实现。但在批处理中如果没有同名文件不知到为什么就会提示写入文件或文件夹。
我又试一次写了把每个IP赋给一个 IP* 然后把 \\%ip*%\c$\ 更新。但是不知如何去循环。
先感谢每位帮忙的朋友。谢谢。
第2楼 HAT 发表于 2008-09-02 17:23
版主 发帖 5,017 积分 9,023
假设所有的IP地址都存放在iplist.txt文件里面
第3楼 dato 发表于 2008-09-02 18:26
高级用户 发帖 377 积分 916
以前有位朋友发表了一个代码,不过搜不到原链接,你可以尝试修改一下,主要是网段部分的修改和xcopy参数的测试,

第4楼 never10 发表于 2008-09-03 08:42
新手上路 发帖 3 积分 8
@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楼 terse 发表于 2008-09-03 11:09
银牌会员 发帖 946 积分 2,404
怎么我这里用xcopy命令 没上面提示
楼主要是更新的话 可以试试 replace "a.exe" "\\IP\C$"
第6楼 never10 发表于 2008-09-03 17:51
新手上路 发帖 3 积分 8
非常感谢各位。
主要是以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
非常感谢各位。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023