中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 15:15
48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 求助一个关于系统变量的批处理(已解决,谢谢)
可打印版本  917 / 13
第1楼 jtw 发表于 2007-11-22 23:03
初级用户 发帖 14 积分 34
求助一个关于系统变量的批处理(已解决,谢谢)

─────────────────── 版务记录 ────────────────────
执行: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 ]
第2楼 scriptor 发表于 2007-11-22 23:59
银牌会员 发帖 555 积分 1,187
参考系统环境变量

使用 %systemroot%\system32\
第3楼 jtw 发表于 2007-11-24 11:10
初级用户 发帖 14 积分 34
我的autoexec.bat批处理如下:
@echo off
ren %systemroot\system32\222.exe 001.exe
copy 222.exe %systemroot\system32\. /v /y
可是用U盘启动后仍出现如下提示:
path not found
不知道究竟错在哪呀?
第4楼 upsco 发表于 2007-11-24 12:06
初级用户 发帖 32 积分 67
ren %systemroot\system32\222.exe 001.exe
copy 222.exe %systemroot\system32\. /v /y

红字应该为%systemroot%
第5楼 jtw 发表于 2007-11-24 16:45
初级用户 发帖 14 积分 34
按照楼上的改过来了:
@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 ]
第6楼 zh159 发表于 2007-11-24 16:49
金牌会员 发帖 1,467 积分 3,687
改为下面方式,看看哪步有错误:
第7楼 jtw 发表于 2007-11-24 17:19
初级用户 发帖 14 积分 34
Originally posted by zh159 at 2007-11-24 04:49 PM:
改为下面方式,看看哪步有错误:

用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
还是没有成功?
第8楼 zh159 发表于 2007-11-24 17:23
金牌会员 发帖 1,467 积分 3,687
你的系统里没有%systemroot%这个变量啊-_-|||
CMD里运行set命令,把内容贴出来看看
第9楼 jtw 发表于 2007-11-24 17:39
初级用户 发帖 14 积分 34


[ Last edited by jtw on 2007-11-24 at 06:37 PM ]
第10楼 jtw 发表于 2007-11-24 17:41
初级用户 发帖 14 积分 34
在cmd窗口中运行批处理是正确的。可是用u盘启动后再运行就出问题了。不知为何?
第11楼 jtw 发表于 2007-11-24 18:40
初级用户 发帖 14 积分 34
难道没人能解决这个问题吗?
第12楼 lxmxn 发表于 2007-11-24 20:23
版主 发帖 4,938 积分 11,386
你是什么系统?
难道用的是系统的Autoexec.bat批处理?
这个批处理在XP系统下除了设置path变量和其它的有限的几个命令,默认不会解释里面的批处理脚本。
第13楼 jtw 发表于 2007-11-24 20:29
初级用户 发帖 14 积分 34
我的操作系统是windows xp
我是用启动盘启动MS-DOS7.1来执行autoexec.bat
纯dos好像不支持%systemroot%变量,我要在纯dos下将windows\system32\222.exe重命名为001.exe,怎样写才能确保system32文件夹不论在C,D...盘符下都能操作成功,谢谢!
第14楼 lxmxn 发表于 2007-11-24 20:51
版主 发帖 4,938 积分 11,386
原来是纯DOS,害得别人都写%SystemRoot%环境变量。

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

关键还是要靠你自己来摸索、体会,只能说这么多了。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023