标题: [求助]如何覆盖批处理本身
[打印本页]
作者: terrytong
时间: 2008-9-22 13:02
标题: [求助]如何覆盖批处理本身
我想要在批处理运行时每次都从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
哪位高手可以解释一下怎么拷贝并覆盖本身吗?是不是可以实现?谢谢。
作者: terrytong
时间: 2008-9-22 14:48
有没有哪位高手帮帮忙啊,或者告诉我可行不?
作者: metoo
时间: 2008-9-22 18:12
提个思路:1通过批处理那更新内容弄到一个临时文件
2加入计划任务重命名临时文件为本来的文件名
3del %0
未测试
作者: baiyangg
时间: 2008-9-22 19:18
我也想知道
作者: bluewaterx
时间: 2008-9-23 10:08
这个在我程序内就有类似代码
从网上判断下载新版本到本程序所在目录另存为新~.cmd
在程序自己开始加入下面代码
::文件名自我修复功能
if not "%~nx0"=="XP系统工具补丁.cmd" (
ren XP系统工具补丁.cmd XP系统工具补丁_老版本_cmd>nul 2>nul
ren %~nx0 XP系统工具补丁.cmd
)
再次运行后,原版本变成老版本,新下载的版本变成原版本
若不想保留直接删除老版本即可
作者: wuxj
时间: 2008-9-24 21:11
个人意见还是分成两个吧,一个简单的 call 就能搞定,何必这么麻烦。
作者: Evangel
时间: 2008-9-28 04:02
还是生成临时文件比较好...运行临时文件更改源文件