中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助一个关于系统变量的批处理(已解决,谢谢)
作者:
标题: 求助一个关于系统变量的批处理(已解决,谢谢) 上一主题 | 下一主题
jtw
初级用户





积分 34
发帖 14
注册 2007-11-15
状态 离线
『楼 主』:  求助一个关于系统变量的批处理(已解决,谢谢)


─────────────────── 版务记录 ────────────────────
执行:lxmxn
标题:求助一个批处理
说明:因标题表述过于模糊,不便于论坛的搜索和管理,请在三日内修改标题,否则扣除2点积分
参考:http://www.cn-dos.net/forum/viewthread.php?tid=7326&fpage=1
   http://www.cn-dos.net/forum/viewthread.php?tid=1415
─────────────────── 版务记录 ────────────────────



这个批处理应该怎么写,请高手指教。
用U盘启动电脑,将windows下system32文件夹中的222.exe改名为001.exe备份;然后拷贝U盘中的222.exe到windows下的system32文件夹中。问题是在有的电脑U盘启动后windows\system32直接位于C盘根目录下,而有的电脑却位于D盘根目录下。怎样写一个批处理,能确保在盘符变化的情况下完成以上操作。谢谢!

[ Last edited by jtw on 2007-11-24 at 09:29 PM ]

2007-11-22 23:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 2 楼』:  

参考系统环境变量

使用  %systemroot%\system32\

2007-11-22 23:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jtw
初级用户





积分 34
发帖 14
注册 2007-11-15
状态 离线
『第 3 楼』:  

我的autoexec.bat批处理如下:
@echo off
ren %systemroot\system32\222.exe 001.exe
copy 222.exe %systemroot\system32\. /v /y
可是用U盘启动后仍出现如下提示:
path not found
不知道究竟错在哪呀?

2007-11-24 11:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
upsco
初级用户





积分 67
发帖 32
注册 2007-11-19
状态 离线
『第 4 楼』:  

ren %systemroot\system32\222.exe 001.exe
copy 222.exe %systemroot\system32\. /v /y

红字应该为%systemroot%

2007-11-24 12:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jtw
初级用户





积分 34
发帖 14
注册 2007-11-15
状态 离线
『第 5 楼』:  

按照楼上的改过来了:
@echo off
ren %systemroot%\system32\222.exe 001.exe
copy 222.exe %systemroot%\system32\. /v /y
可是用U盘启动执行后,仍然提示path not found,为什么呀?
用什么命令能准确地定位系统文件所在的盘符?

[ Last edited by jtw on 2007-11-24 at 04:49 PM ]

2007-11-24 16:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 6 楼』:  

改为下面方式,看看哪步有错误:
@echo on
ren %systemroot%\system32\222.exe 001.exe
pause
copy 222.exe %systemroot%\system32\. /v /y
pause




2007-11-24 16:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jtw
初级用户





积分 34
发帖 14
注册 2007-11-15
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by zh159 at 2007-11-24 04:49 PM:
改为下面方式,看看哪步有错误:
@echo on
ren %systemroot%\system32\222.exe 001.exe
pause
copy 222.exe %systemroot%\system32\. /v /y
pause

用U盘启动后,屏幕提示如下:
a:\>ren \system32\222.exe 001.exe
path not found

a:\>pause
press any key to continue...

a:\>copy 222.exe \system32\. /v /y
path not found
还是没有成功?

2007-11-24 17:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 8 楼』:  

你的系统里没有%systemroot%这个变量啊-_-|||
CMD里运行set命令,把内容贴出来看看



2007-11-24 17:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jtw
初级用户





积分 34
发帖 14
注册 2007-11-15
状态 离线
『第 9 楼』:  



[ Last edited by jtw on 2007-11-24 at 06:37 PM ]

2007-11-24 17:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jtw
初级用户





积分 34
发帖 14
注册 2007-11-15
状态 离线
『第 10 楼』:  

在cmd窗口中运行批处理是正确的。可是用u盘启动后再运行就出问题了。不知为何?

2007-11-24 17:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jtw
初级用户





积分 34
发帖 14
注册 2007-11-15
状态 离线
『第 11 楼』:  

难道没人能解决这个问题吗?

2007-11-24 18:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 12 楼』:  

你是什么系统?
难道用的是系统的Autoexec.bat批处理?
这个批处理在XP系统下除了设置path变量和其它的有限的几个命令,默认不会解释里面的批处理脚本。

2007-11-24 20:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jtw
初级用户





积分 34
发帖 14
注册 2007-11-15
状态 离线
『第 13 楼』:  

我的操作系统是windows xp
我是用启动盘启动MS-DOS7.1来执行autoexec.bat
纯dos好像不支持%systemroot%变量,我要在纯dos下将windows\system32\222.exe重命名为001.exe,怎样写才能确保system32文件夹不论在C,D...盘符下都能操作成功,谢谢!

2007-11-24 20:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 14 楼』:  

原来是纯DOS,害得别人都写%SystemRoot%环境变量。

个人对DOS不熟悉,可以参考这样的语句:if exist C:\windows\system32\222.exe ren ...
如果有几个盘符,就多写几个这样的if语句吧,不知道DOS下面的for能不能完成类似的工作,没有测试。

关键还是要靠你自己来摸索、体会,只能说这么多了。

2007-11-24 20:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: