本帖最后由 case 于 2012-12-1 23:17 编辑
小弟AU3学得不好,有好多思路都没有,也不知道用什么函数可以达到想要的目的
这是批处理代码.作用是一键GHOST安装系统 我想用AU3来实现.@echo off
set v=0
set w=0
set x=0
set y=0
set z=0
set g=0
for /f "eol=D tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 delims=[]\ " %%a in ('y:\op\GHOST\omnifs32.exe info') do (
if %%i==CASE_Z set g=%%d
if %%a%%i==1.1:CASE_Z set y=1
if %%a%%i==2.1:CASE_Z set x=1
if %%a==2.1: set v=1
if %%a==1.1: set v=1
if %%a==3.1: set z=1
if %%a==1.2: set w=1
if %%a==2.2: set w=1
)
if %v%==0 call :nohd
if %z%==1 call :fail
if %w%==0 call :fenqu
if %x%==1 call :more
if %y%==1 call :less
goto error
pause>>nul
:fail
pecmd MESS 存在2个或更多硬盘,为确保数据安全,请手动运行Ghost. @出错啦!#OK *10000
goto end
:less
y:\op\GHOST\GHOST32_1151.exe -noide -clone,mode=pload,dst=2:1,src=%g%\system\CASE3.GHO:1 -batch -sure -rb
goto end
:more
y:\op\GHOST\GHOST32_1151.exe -noide -clone,mode=pload,dst=1:1,src=%g%\system\CASE3.GHO:1 -batch -sure -rb
goto end
:fenqu
pecmd MESS 请检查硬盘是否已经分区或存在问题. @出错啦!#OK *10000
goto end
:nohd
pecmd MESS 没有找到硬盘. @出错啦!#OK *10000
goto end
:error
pecmd MESS 请尝试修改U盘盘符为CASE_Z和重新写U盘引导. @未知错误!#OK *15000
goto end
:end
exit
例子 omnifs32.exe info读取硬盘信息如下:
Disk: 1 (298.09GB) M:[WDC WD32 00AAJS-00L7A 01.0]
1.1: ( 20GB) [C:\] Active Volume NTFS l:[WIN7]
1.2: ( 120.01GB) [D:\] Volume NTFS l:[TOOLS]
1.3: ( 60GB) [E:\] Volume NTFS l:[DATA]
1.4: ( 90GB) [F:\] Volume NTFS l:[BACKUP]
( 31.50KB) Unused Space
1.5: ( 8.07GB) [H:\] Diag Hidden Volume FAT32 l:[IBM_SERVICE]
( 1.46MB) Unused Space
Disk: 2 (14.20GB) M:[USB DISK CD PMAP]
2.1: ( 14.20GB) [K:\] Active Volume FAT32 l:[CASE_Z] Removable Drive
因为有时候U盘可能是Disk: 1 ,之前是靠CASE_Z来判断U盘是HD0,还是HD1.
我也搜索了关于GHOST的一些帖子,也看到了P大的SetupApi.au3,_CM_Get_Drive_Disk_Number,可是不知道怎么才能用才能得到U盘是HD0还是HD1
FileReadLine
DriveGetDrive
这些好像都不能得到U盘是HD0还是HD1
其实我想 或者用正则得到 读取
2.1: ( 14.20GB) [K:\] Active Volume FAT32 l:[CASE_Z] Removable Drive
哪位大大给个思路... |