Board logo

标题: 求助一个关于系统变量的批处理(已解决,谢谢) [打印本页]

作者: jtw     时间: 2007-11-22 23:03    标题: 求助一个关于系统变量的批处理(已解决,谢谢)


─────────────────── 版务记录 ────────────────────
执行: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 ]
作者: scriptor     时间: 2007-11-22 23:59
参考系统环境变量

使用  %systemroot%\system32\
作者: jtw     时间: 2007-11-24 11:10
我的autoexec.bat批处理如下:
@echo off
ren %systemroot\system32\222.exe 001.exe
copy 222.exe %systemroot\system32\. /v /y
可是用U盘启动后仍出现如下提示:
path not found
不知道究竟错在哪呀?
作者: upsco     时间: 2007-11-24 12:06
ren %systemroot\system32\222.exe 001.exe
copy 222.exe %systemroot\system32\. /v /y

红字应该为%systemroot%
作者: jtw     时间: 2007-11-24 16:45
按照楼上的改过来了:
@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 ]
作者: zh159     时间: 2007-11-24 16:49
改为下面方式,看看哪步有错误:
@echo on
ren %systemroot%\system32\222.exe 001.exe
pause
copy 222.exe %systemroot%\system32\. /v /y
pause

作者: jtw     时间: 2007-11-24 17:19


  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
还是没有成功?
作者: zh159     时间: 2007-11-24 17:23
你的系统里没有%systemroot%这个变量啊-_-|||
CMD里运行set命令,把内容贴出来看看
作者: jtw     时间: 2007-11-24 17:39


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

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

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