楼 主
[求助]如何覆盖批处理本身
发表于 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 性别 男
状态 离线
还是生成临时文件比较好...运行临时文件更改源文件
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正