中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 21:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何覆盖批处理本身 查看 902 回复 6
楼 主 [求助]如何覆盖批处理本身 发表于 2008-09-22 13:02 ·  中国 上海 上海地面通信息网络有限公司
中级用户
★★
积分 240
发帖 115
注册 2008-03-10 19:31
18年会员
UID 112561
性别 男
状态 离线
我想要在批处理运行时每次都从server里拷贝同名的批处理来覆盖其本身,以确保有人改动本地的批得处理时能及时还原,或者是有更新时,我只需要更改server里的就可以了。
比如:我在D:下有个terry.bat
服务器里也有个terry.bat,目录是d:\terry
用net use 可以映射到本地,运行完就删除这个映射。
@echo off
net use z: \\servername\terry ps /user:asministrator


net use z: /del

:end
哪位高手可以解释一下怎么拷贝并覆盖本身吗?是不是可以实现?谢谢。
2 发表于 2008-09-22 14:48 ·  中国 上海 上海地面通信息网络有限公司
中级用户
★★
积分 240
发帖 115
注册 2008-03-10 19:31
18年会员
UID 112561
性别 男
状态 离线
有没有哪位高手帮帮忙啊,或者告诉我可行不?
3 发表于 2008-09-22 18:12 ·  中国 江苏 苏州 电信
初级用户
★★
积分 195
发帖 93
注册 2006-10-28 08:20
19年会员
UID 68626
性别 男
状态 离线
提个思路:1通过批处理那更新内容弄到一个临时文件
2加入计划任务重命名临时文件为本来的文件名
3del %0

未测试
4 发表于 2008-09-22 19:18 ·  中国 山东 济南 教育网
新手上路
积分 2
发帖 1
注册 2008-09-22 18:23
17年会员
UID 126327
性别 男
状态 离线
我也想知道
5 发表于 2008-09-23 10:08 ·  中国 广东 深圳 电信
初级用户
★★
积分 132
发帖 68
注册 2008-07-29 20:51
18年会员
UID 122345
性别 男
状态 离线
这个在我程序内就有类似代码
从网上判断下载新版本到本程序所在目录另存为新~.cmd

在程序自己开始加入下面代码
::文件名自我修复功能
if not "%~nx0"=="XP系统工具补丁.cmd" (
ren XP系统工具补丁.cmd XP系统工具补丁_老版本_cmd>nul 2>nul
ren %~nx0 XP系统工具补丁.cmd
)


再次运行后,原版本变成老版本,新下载的版本变成原版本
若不想保留直接删除老版本即可
6 发表于 2008-09-24 21:11 ·  中国 新疆 石河子 电信
初级用户
积分 50
发帖 25
注册 2007-03-29 14:07
19年会员
UID 83301
性别 男
状态 离线
个人意见还是分成两个吧,一个简单的 call 就能搞定,何必这么麻烦。
7 发表于 2008-09-28 04:02 ·  中国 四川 成都 电信
初级用户
★★
积分 145
发帖 95
注册 2008-04-12 16:29
18年会员
UID 115703
性别 男
状态 离线
还是生成临时文件比较好...运行临时文件更改源文件
论坛跳转: