中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 哪位高人帮我看一下这个批处理?
« [1] [2] »
作者:
标题: 哪位高人帮我看一下这个批处理? 上一主题 | 下一主题
tclshx
中级用户




积分 249
发帖 64
注册 2005-6-3
状态 离线
『第 16 楼』:  

无法将光盘根目录PROGRAMS复制到硬盘的系统分区;无法将光盘根目录I386中的子目录和文件复制到硬盘系统分区中的MININT文件夹。ATTRIB.EXE、FIND.EXE、XCOPY.EXE、LDRXPE、AVLDR.XPE是放在光盘根目录中的一个文件夹中的。
  请帮看一下吧,到底哪里有错?

2006-9-18 03:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 17 楼』:  

批处理和xcopy都在WINPE安装里吧,我之前说过了请善用.\和..\,下面我就修改了2处,不管在硬盘还是光盘只有保持此目录结构都同样执行


@echo OFF
Title=安装XPE硬盘版
:begin
cls
COLOR 2F
echo.
echo.
echo                       XPE硬盘安装版
echo        ==============================================
echo.
echo        即将安装“小型XPE 硬盘版”到您的系统!
echo        本安装程序不会修改系统 MBR 及分区表等信息。
echo.
Echo 请按任意键开始安装......
PAUSE >NUL
Set RP=RP
For %%I In (C D E F G H I J K L M N O P Q R S T U V W X Y Z) Do If Exist %%I:\BOOT.INI Set RP=%%I
If %RP%==RP Goto Exit
FIND "Avldr.xpe" %RP%:\BOOT.INI >NUL
If %Errorlevel%==0 Goto Err1
:Install
If Exist %RP%:\AVLDR.XPE ATTRIB -S -H -R %RP%:\AVLDR.XPE
If Exist %RP%:\LDRXPE ATTRIB -S -H -R %RP%:\LDRXPE
Echo.
Echo 正在复制文件,请稍候 ......
Copy AVLDR.XPE %RP%:\ /Y>NUL
Copy LDRXPE %RP%:\ /Y>NUL
if not exist %RP%:\MININT\nul md %RP%:\MININT>NUL 2>nul
xcopy /y /r /e /q /h ..\I386\*.* %RP%:\MININT\>NUL 2>nul
ATTRIB -S -H -R %RP%:\BOOT.INI
If Exist %RP%:\BOOT.BAK (
ATTRIB -S -H -R %RP%:\BOOT.BAK
Del %RP%:\BOOT.BAK /Q
)
Copy %RP%:\BOOT.INI %RP%:\BOOT.BAK>NUL
TYPE %RP%:\BOOT.BAK|FIND /V "Avldr">%RP%:\BOOT.INI
Echo C:\Avldr.xpe="启动WinPE系统">>%RP%:\BOOT.INI
if not exist %RP%:\PROGRAMS\nul md %RP%:\PROGRAMS>NUL 2>nul
xcopy /y /e /q /h ..\PROGRAMS\*.* %RP%:\PROGRAMS\>NUL 2>nul
ATTRIB +S +H +R %RP%:\AVLDR.XPE
ATTRIB +S +H +R %RP%:\LDRXPE
ATTRIB +S +H +R %RP%:\BOOT.INI
ATTRIB +S +H +R %RP%:\BOOT.BAK
ATTRIB +S +H +R %RP%:\PROGRAMS /D /S
ATTRIB +S +H +R %RP%:\MININT /D /S

Goto SUCCESS

:Err1
CLS
Echo 好像你的机器中已经安装了 WinPE 了,请选择以下操作选项。
Echo.
Echo  1.卸载原有的 WinPE,并且重新安装。
Echo  2.退出安装
Echo.
Set Choice=
Set /P Choice=请选择要进行的操作 (1/2) ,然后按回车:
If Not '%Choice%'=='' SET Choice=%Choice:~0,1%
If /I '%Choice%'=='1' GOTO Install
If /I '%Choice%'=='2' EXIT
Goto Err1

:Exit
CLS
Echo 好像你的机器中没有安装操作系统哦,请确认后再执行本安装程序。
Echo.
Echo 请按任意键退出 。。。
PAUSE >NUL
Exit

:SUCCESS
CLS
Echo 已经成功将WinPE安装到你的 %RP%: 盘。
Echo.
Echo 系统分区中的 BOOT.INI 备份为 BOOT.BAK。
Echo.
Echo 请按任意键退出。。。
PAUSE >NUL
Exit



第一高手    第二高手

2006-9-18 03:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tclshx
中级用户




积分 249
发帖 64
注册 2005-6-3
状态 离线
『第 18 楼』:  



  Quote:
@echo OFF
Title=安装XPE硬盘版
:begin
cls
COLOR 2F
echo.
echo.
echo                       XPE硬盘安装版
echo        ==============================================
echo.
echo        即将安装“小型XPE 硬盘版”到您的系统!
echo        本安装程序不会修改系统 MBR 及分区表等信息。
echo.
Echo 请按任意键开始安装......
PAUSE >NUL
Set RP=RP
For %%I In (C D E F G H I J K L M N O P Q R S T U V W X Y Z) Do If Exist %%I:\BOOT.INI Set RP=%%I
If %RP%==RP Goto Exit
FIND "Avldr.xpe" %RP%:\BOOT.INI >NUL
If %Errorlevel%==0 Goto Err1
:Install
If Exist %RP%:\AVLDR.XPE ATTRIB -S -H -R %RP%:\AVLDR.XPE
If Exist %RP%:\LDRXPE ATTRIB -S -H -R %RP%:\LDRXPE
Echo.
Echo 正在复制文件,请稍候 ......
Copy AVLDR.XPE %RP%:\ /Y>NUL
Copy LDRXPE %RP%:\ /Y>NUL
if not exist %RP%:\MININT\nul md %RP%:\MININT>NUL 2>nul
xcopy /y /r /e /q /h ..\I386\*.* %RP%:\MININT\>NUL 2>nul
ATTRIB -S -H -R %RP%:\BOOT.INI
If Exist %RP%:\BOOT.BAK (
ATTRIB -S -H -R %RP%:\BOOT.BAK
Del %RP%:\BOOT.BAK /Q
)
Copy %RP%:\BOOT.INI %RP%:\BOOT.BAK>NUL
TYPE %RP%:\BOOT.BAK|FIND /V "Avldr">%RP%:\BOOT.INI
Echo C:\Avldr.xpe="启动WinPE系统">>%RP%:\BOOT.INI
if not exist %RP%:\PROGRAMS\nul md %RP%:\PROGRAMS>NUL 2>nul
xcopy /y /e /q /h ..\PROGRAMS\*.* %RP%:\PROGRAMS\>NUL 2>nul
ATTRIB +S +H +R %RP%:\AVLDR.XPE
ATTRIB +S +H +R %RP%:\LDRXPE
ATTRIB +S +H +R %RP%:\BOOT.INI
ATTRIB +S +H +R %RP%:\BOOT.BAK
ATTRIB +S +H +R %RP%:\PROGRAMS /D /S
ATTRIB +S +H +R %RP%:\MININT /D /S

Goto SUCCESS

:Err1
CLS
Echo 好像你的机器中已经安装了 WinPE 了,请选择以下操作选项。
Echo.
Echo  1.卸载原有的 WinPE,并且重新安装。
Echo  2.退出安装
Echo.
Set Choice=
Set /P Choice=请选择要进行的操作 (1/2) ,然后按回车:
If Not '%Choice%'=='' SET Choice=%Choice:~0,1%
If /I '%Choice%'=='1' GOTO Install
If /I '%Choice%'=='2' EXIT
Goto Err1

:Exit
CLS
Echo 好像你的机器中没有安装操作系统哦,请确认后再执行本安装程序。
Echo.
Echo 请按任意键退出 。。。
PAUSE >NUL
Exit

:SUCCESS
CLS
Echo 已经成功将WinPE安装到你的 %RP%: 盘。
Echo.
Echo 系统分区中的 BOOT.INI 备份为 BOOT.BAK。
Echo.
Echo 请按任意键退出。。。
PAUSE >NUL
Exit

OK了,谢啦是路径问题.

请善用.\和..\
.\i386  表示当前目录下的I386
..\i386  表示上级目录下的I386
你没有说明目录结构,就一楼我提示一下,自己再掂量一下巴
批处理在光盘根目录的例子
..\文件夹名\xcopy.exe  /y /r /e /q /h .\I386\*.* %RP%:\MININT\>NUL 2>nul
或者:
批处理和xcopy.exe在同目录的例子
xcopy.exe  /y /r /e /q /h ..\I386\*.* %RP%:\MININT\>NUL 2>nul


学习....

[ Last edited by tclshx on 2006-9-18 at 10:46 ]

2006-9-18 10:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: