![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 17:09 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 谁能把这个批处理补充一下 |
| 可打印版本 862 / 12 |
| 第1楼 jiaju8 | 发表于 2007-03-11 09:35 |
| 初级用户 发帖 30 积分 74 | |
|
谁能把这个批处理补充一下 谁能把这个批处理补充一下
1 添加一个选择 分卷压缩 的选项 (默认不分卷) 2 添加一个选择 参数 -ia 的选项(默认不选择-ia) (只添加到 分区备份 的里面) ------------------------------------------------------------- 原始版本在这里 http://fe-ng.ys168.com/ 一键恢复系统2 ============================================= ============================================= @echo off cls set c=1 set d=1 set e=1 set f=2 set g=sys set y=ghost -sure -rb -clone,mode :a call w w goto %?% :w "矮人工作室qwe1234567制作 " 声明:本人对使用本软件 导致的数据丢失不负责! :1 call w t if not %?%*==2* goto a %y%=pdump,src=%c%:%d%,dst=%e%:%f%\%g%.gho -z1 echo 出错了!请检查硬盘! goto a :t "分区备份向导" 第硬盘第分区 备份到 第硬盘第分区:\.gho 警告!如继续操作将覆盖原有同名文件!!!请确认 :2 call w y if not %?%*==2* goto a %y%=pload,src=%e%:%f%\%g%.gho:1,dst=%c%:%d% echo 出错了!请检查硬盘! goto a :y "分区恢复向导" 第硬盘第分区:\.gho 恢复到 第硬盘第分区 警告!如继续操作将覆盖目标分区原有文件!!!请确认 :3 call w r if not %?%*==2* goto a if %d%*==* goto b %y%=pcopy,src=%c%:%d%,dst=%h%:%i% echo 出错了!请检查硬盘! goto a :100 goto a :b %y%=copy,src=%c%,dst=%h% echo 出错了!请检查硬盘! goto a :r "硬盘对拷向导" 第硬盘第分区 对拷到 第硬盘第分区 警告!一旦按"确定",将立即对拷,目标分区或硬盘将被覆盖! [ Last edited by jiaju8 on 2007-3-12 at 07:58 AM ] |
|
| 第2楼 0451lym | 发表于 2007-03-11 09:59 |
| 高级用户 发帖 357 积分 760 | |
|
-ia 全部映像。Ghost会对硬盘上所有的分区逐个进行备份。
有必要吗?双硬盘? |
|
| 第3楼 jiaju8 | 发表于 2007-03-11 10:04 |
| 初级用户 发帖 30 积分 74 | |
Originally posted by 0451lym at 2007-3-10 08:59 PM: YES 呵呵 |
|
| 第4楼 0451lym | 发表于 2007-03-11 10:10 |
| 高级用户 发帖 357 积分 760 | |
|
都用变量往里边套!
例如: :BF for %%x in (ls1 id LJ M FQ kj1 kj2 wbat CW ts) do SET %%x=>NUL set ?=>nul ECHO %RAMDRIVE%\GHOST.EXE -CLONE,MODE=PDUMP,SRC=%S1%:%S2%,DST=%D1%:%D2%:\%WJ%.LYM -Z%YS% -AUTO -FRO -FX -SURE %MM% %FJ1% %FJ%>%temp%\ls.bat echo exit|command /k prompt ATTRIB +H +S +R %LS%\%WJ%.LYM $Gnul$_|find ">" >>%temp%\ls.bat CALL QBL CALL %temp%\ls.bat |
|
| 第5楼 jiaju8 | 发表于 2007-03-11 10:18 |
| 初级用户 发帖 30 积分 74 | |
|
楼上这个0451的大哥
我是0452的,你的例子我更迷糊了。 有做好的吗?我是纯外行 |
|
| 第6楼 0451lym | 发表于 2007-03-11 10:36 |
| 高级用户 发帖 357 积分 760 | |
|
还在修改中,现在是优化精简了.本来过完年就应该写好的,但是最近总是忙,这两天精神恍惚,静不下心来.给你发一个不完整的,看看你能用到不!
@ECHO OFF GO %RAMDRIVE%\BAT CALL RQ.BAT set ZT=桌面 STRINGS ID=LINESIZE %temp%\HDD.INI STRINGS ID=ADD %ID%,1 STRINGS LJ=READ %temp%\HDD.INI,%ID% IF NOT "%LJ%"=="" STRINGS LJ=MID %LJ%,1,2 ECHO %LJ%|find.exe /i ":">NUL if ERRORLEVEL 1 goto 00 DIRT %LJ%\~BF~1\ /Q /L:0>NUL if not "%FPATH%"=="" DIRT %LJ%\~BF~1\%FQ%INI.BAT /Q /L:0>NUL IF "%FPATH%"=="" DIRT %LJ%\%FQ%INI.BAT /Q /L:0>NUL IF "%FPATH%"=="" MYSET FPath=%LJ%>NUL set LJ=%FPATH%\%FQ%INI.BAT IF "%FName%"=="%FQ%INI.BAT" CALL %LJ% DIRT /CLEARENV>NUL :00 SET PD=0>NUL if "%KJ1%"=="" GOTO KJ1 :00A if "%KJ2%"=="" GOTO KJ2 :00B IF NOT "%ID%"=="" strings ID=sub %ID%,1 if "%ID%"=="0" SET ID=>NUL set cw=1>NUL IF "%S1%%S2%"=="%D1%%D2%" if NOT "%ID%"=="" GOTO KJ2 calc %KJ2%-%KJ1%*0.7|find "-"|if errorlevel 1 GOTO 00C if NOT "%ID%"=="" GOTO KJ2 GOTO 01 :00C SET cw=>NUL :01 for %%X in (ID PD) do set %%X=>NUL DIRT %LS%\~BF~1\ /Q /L:0 >NUL IF NOT "%FPATH%"=="" set WJ=~BF~1\%mon%_%day%_%S1%%S2%>NUL IF "%FPATH%"=="" set WJ=%mon%_%day%_%S1%%S2%>NUL :02 DIRT /CLEARENV>NUL IF "%S1%%S2%"=="%D1%%D2%" SET CW=5>NUL if "%cw%"=="1" set TS=第%D1%硬盘→第%D2%分区剩余空间过小,请重新选择!>NUL if "%cw%"=="2" SET TS=%WJ1%.LYM已存在,覆盖后将无法恢复!>NUL if "%cw%"=="3" SET TS=%D1%.%D2%:\%LS1%,该路径不存在!>NUL if "%cw%"=="4" SET TS=镜像名不合法,请遵循8.3格式!>NUL if "%cw%"=="5" SET TS=所保存的路径正被备份!>NUL if "%cw%"=="6" SET TS=压缩值不合法,请重新填写!>NUL if "%cw%"=="7" SET TS=分卷值不合法,请重新填写!>NUL if "%cw%"=="" SET TS=未见异常! wbat cls (white on blue) IF NOT "%FQ%" == "" CALL W.BAT fix BOX (+WHITE ON +BLUE) @BAT.INI:BF_0 IF "%FQ%" == "" call w.bat fix box (+white on +blue) @BAT.INI:GJBF_0 IF ERRORLEVEL 100 GOTO TC :02A ECHO %WJ%|find /i ".">NUL if errorlevel 1 GOTO 02B STRINGS ID=find %wj%,. STRINGS ID=SUB %ID%,1 STRINGS WJ=LEFT %wj%,%ID% :02B if "%WBAT%" == "Q" goto 09 if "%WBAT%" == "T" goto 08 IF "%WBAT%"=="Z" GOTO 05 FOR %%X IN (TS LS1 ID) DO SET %%X=>NUL IF "%WBAT%"=="X" GOTO 03 IF "%S1%%S2%"=="%D1%%D2%" GOTO 02 IF "%CW%"=="1" GOTO 02 IF "%Wj%"=="" GOTO 01 IF "%WBAT%"=="Y" GOTO 06 :03 ECHO :. " 分区符 类型 文件系统 容量 活动 隐藏 卷标 已用空间 剩余空间">%temp%\ls.txt type %temp%\hdd.ini|find.exe /i ":"|find.exe /i /V "%S1%.%S2%:">>%temp%\ls.txt IF NOT "%FQ%" == "" ECHO 确定%FQ%盘位置!>>%temp%\ls.txt IF "%FQ%" == "" ECHO 选择备份目标!>>%temp%\ls.txt wbat fill2,1(1,80)(+cyan on +black)""!text2,1" 镜像存放到那里? <Esc>--退出" call w.bat fix list3,1(1,80)(+white on +black)@%temp%\ls.txt:. IF ERRORLEVEL 100 GOTO 02 IF "%WBAT%"=="选择备份目标!" GOTO 04 IF "%WBAT%"=="确定%FQ%盘位置!" GOTO 04 :KJ2 IF NOT "%ID%"=="" STRINGS WBAT=READ %temp%\HDD.INI,%ID% STRINGS D1=MID %WBAT%,6,1 STRINGS D2=MID %WBAT%,8,1 STRINGS LS=MID %WBAT%,1,2 STRINGS KJ2=MID %WBAT%,70,9 strings WBAT=parse %KJ2%,2 strings KJ2=parse %KJ2%,1 if "%WBAT%"=="GB" calc %KJ2%*1024>%temp%\LS.TXT if "%WBAT%"=="GB" strings KJ2=read %temp%\LS.TXT,1 FOR %%X IN (%KJ2%) DO SET KJ2=%%X>NUL MYSET WBAT=>NUL GOTO 00B :04 ECHO :. " 分区符 类型 文件系统 容量 活动 隐藏 卷标 已用空间 剩余空间">%temp%\ls.txt type %temp%\hdd.ini|find.exe /i ":">>%temp%\ls.txt IF NOT "%FQ%" == "" wbat fill2,1(1,80)(+cyan on +black)""!text2,1" 请慎重选择%FQ%盘位置! <Esc>--退出" IF "%FQ%" == "" wbat fill2,1(1,80)(+cyan on +black)""!text2,1" 要备份那个分区? <Esc>--退出" set wbar=+white on red call w.bat fix list3,1(1,80)(+white on +black)@%temp%\ls.txt:. set wbar=>nul IF ERRORLEVEL 100 GOTO 02 STRINGS S1=MID %WBAT%,6,1 STRINGS S2=MID %WBAT%,8,1 :KJ1 if "%WBAT%"=="" TYPE %temp%\HDD.INI|find.exe /i "%S1%.%S2%:">%temp%\LS.TXT if "%WBAT%"=="" strings WBAT=read %temp%\LS.TXT,1 STRINGS KJ1=MID %WBAT%,60,9 strings WBAT=parse %KJ1%,2 strings KJ1=parse %KJ1%,1 if "%WBAT%"=="GB" calc %KJ1%*1024>%temp%\LS.TXT if "%WBAT%"=="GB" strings KJ1=read %temp%\LS.TXT,1 FOR %%X IN (%KJ1%) DO SET KJ1=%%X>NUL MYSET WBAT=>NUL if "%PD%"=="0" GOTO 00A GOTO 00B :05 IF NOT "%ZT%"=="桌面" GOTO 05A set ZT=重启 GOTO 02 :05A IF NOT "%ZT%"=="重启" GOTO 05B set ZT=关机 GOTO 02 :05B IF NOT "%ZT%"=="关机" GOTO 05 set ZT=桌面 GOTO 02 :06 if NOT "%LS2%"=="" SET LS1=%LS1%%LS2% SET LS2=>NUL STRINGS ID=find %wj%,\ if "%ID%"=="0" goto 06A STRINGS ls2=LEFT %wj%,%ID% STRINGS ID=ADD %ID%,1 STRINGS WJ=MID %WJ%,%ID%,30 GOTO 06 :06A if not "%ls1%"=="" DIRT %LS%\%LS1% /Q /L:0 >NUL if not "%DirtRet%"=="Fail" goto 06B set cw=3>NUL set wj=%LS1%%wj% GOTO 02 :06B DIRT /CLEARENV>NUL STRINGS ID=LENGTH %WJ% calc 8-%ID%|find "-"|if errorlevel 1 GOTO 06C GOTO 06D :06C if "%wj%"=="" goto 06D GOTO 06E :06D set cw=4>NUL set wj=%LS1%%wj% GOTO 02 :06E set wj=%LS1%%wj% IF not "%WJ1%"=="%D1%.%D2%:\%wj%" set cw=>NUL set WJ1=%D1%.%D2%:\%wj% if "%cw%"=="2" goto 07 DIRT %LS%\%WJ%.LYM /Q /L:0 >NUL if "%DirtRet%"=="Success" set cw=2>NUL DIRT /CLEARENV>NUL if "%cw%"=="2" goto 02 :07 for %%x in (ls1 WJ1) do SET %%x=>NUL ECHO SET S1=%S1%>%LJ% ECHO SET S2=%S2%>>%LJ% ECHO SET D1=%D1%>>%LJ% ECHO SET D2=%D2%>>%LJ% ECHO SET WJ=%WJ%.LYM>>%LJ% FOR %%X IN (1 2 3 4 5 6 7 8 9) DO IF "%%X" == "%YS%" GOTO 07A SET CW=6>NUL GOTO 02 :07A if "%MM%"=="" goto 07B myset MM=-pwd=%mm%>NUL :07B if "%FJ%"=="0" myset FJ=>NUL if "%FJ%"=="" goto BF FOR %%X IN (0 1 2 3 4 5 6 7 8 9) DO IF "%FJ%"=="0%X" GOTO 07C1 FOR %%X IN (0 1 2 3 4 5 6 7 8 9) DO IF "%FJ%"=="00%%X" GOTO 07C1 FOR %%X IN (%FJ%) DO SET ?=%%X IF NOT "%FJ%"=="%?%" GOTO 07C1 SET ID=0 :07C STRINGS ID=ADD %ID%,1 if "%ID%"=="4" goto 07D STRINGS ls1=MID %FJ%,%ID%,1 FOR %%X IN (0 1 2 3 4 5 6 7 8 9) DO IF "%%X" == "%ls1%" GOTO 07C :07C1 SET CW=7>NUL GOTO 02 :07D myset FJ1=-span>NUL myset FJ=-split=%fj%>NUL :BF for %%x in (ls1 id LJ M FQ kj1 kj2 wbat CW ts) do SET %%x=>NUL set ?=>nul ECHO %RAMDRIVE%\GHOST.EXE -CLONE,MODE=PDUMP,SRC=%S1%:%S2%,DST=%D1%:%D2%:\%WJ%.LYM -Z%YS% -AUTO -FRO -FX -SURE %MM% %FJ1% %FJ%>%temp%\ls.bat echo exit|command /k prompt ATTRIB +H +S +R %LS%\%WJ%.LYM $Gnul$_|find ">" >>%temp%\ls.bat CALL QBL CALL %temp%\ls.bat IF "%ZT%" == "关机" OFF.COM IF "%ZT%" == "重启" RESET.COM GOTO TC :08 call w.bat FIX box (+white on +blue) @BAT.INI:GJBF_1 if errorlevel 100 goto 09 if "%WBAT%" == "Y" goto 08A :08A if NOT "%MM%"=="%MM1%" goto 08B set M=有>NUL set MM1=>NUL goto 02 :08B call w.bat box (+white on +blue) @BAT.INI:GJBF_2 goto 08 :09 set MM=>NUL set MM1=>NUL set M=无>NUL goto 02 :TC SET ZT=>NUL if NOT "%S1%%S2%%D1%%D2%"=="" CALL QBL if exist %temp%\ls.txt del %temp%\ls.txt if exist %temp%\ls.bat del %temp%\ls.bat |
|
| 第7楼 0451lym | 发表于 2007-03-11 10:38 |
| 高级用户 发帖 357 积分 760 | |
|
:BF_0 " 我的镜像恢复系统 → 备份 %FQ% 盘!" [x]
[X 向导] 第 %S1%. 硬盘 → 第 %S2% 分区 (已用空间: %KJ1% MB) 备份到 第 %D1%. 硬盘 → 第 %D2% 分区 (剩余空间: %KJ2% MB) 填写镜像名 → %D1%.%D2%:\[$WJ,30,U, ].LYM [Z 状态]:%ZT% 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪 ~提示:%TS%~ [ Y →确定立即备份← ] [? Esc→返回系统桌面← ] :: :GJBF_0 " 我的镜像恢复系统 → 高级备份!" [x] [X 向导] 第 %S1%. 硬盘 → 第 %S2% 分区 (已用空间: %KJ1% MB) 备份到 第 %D1%. 硬盘 → 第 %D2% 分区 (剩余空间: %KJ2% MB) 填写镜像名 → %D1%.%D2%:\[$WJ,30,U, ].LYM [Z 状态]:%ZT% 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪 压缩: [$YS,1] 级 (低压缩速度快1↓~~↑9高压缩速度慢) 分卷: [$FJ,3,U,] MB ("0"表示不分卷,CD刻录镜像建议为"600"MB) [T 填写密码保护] 密码:(%M%) [Q 取消密码保护] 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪 ~提示:%TS%~ [ Y →确定立即备份← ] [? Esc→返回系统桌面← ] :: :GJBF_1 " 填写密码保护"[x] 输入密码: [$MM,10,P! ] 确认密码: [$MM1,10,P! ] 提示: 1. Alt+F2 = 拼音输入. Alt+F6 = 字符输入. 2. 最多允许输入10个字符. 3. ESC键 = 取消密码保护. [Y 确定] :: :GJBF_2 " 密码错误 !"[x] 密码两次输入不一致! [确定] |
|
| 第8楼 0451lym | 发表于 2007-03-11 10:42 |
| 高级用户 发帖 357 积分 760 | |
|
STRINGS和GHOST11对于汉字识别有错误,因此建议考虑目录或者文件存在汉字的可能性!
|
|
| 第9楼 jiaju8 | 发表于 2007-03-12 07:33 |
| 初级用户 发帖 30 积分 74 | |
| 第10楼 lianjiang2004 | 发表于 2007-03-12 23:06 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
别人弄的批处理,要想看明白,不是很容易的。加上本人水平有限,帮不上甚么忙。
|
|
| 第11楼 不得不爱 | 发表于 2007-03-13 10:12 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
『楼 主』: 谁能把这个批处理补充一下
1 添加一个选择 分卷压缩 的选项 (默认不分卷) 在GHOST8.0以上的版本一般是可以不用做分卷压缩的,除非你的分区是FAT分区 2 添加一个选择 参数 -ia 的选项(默认不选择-ia) (只添加到 分区备份 的里面) 这个何不用硬盘备份? |
|
| 第12楼 jiaju8 | 发表于 2007-03-13 10:27 |
| 初级用户 发帖 30 积分 74 | |
|
原作者来了,你好啊
我是在 矮人论坛看到的这个gvhost,后来找东西找到这个论坛,后来发现你是原作者,呵呵 我只想用扇区这样的备份,另外扇区备份就需要分卷了。 ================================= @echo off cls set c=1 set d=1 set e=1 set f=2 set h=0 set g=sys set y=ghost -sure -rb -clone,mode :a call w w goto %?% :w "矮人工作室qwe1234567制作 " 声明:本人对使用本软件 导致的数据丢失不负责! :1 call w t if not %?%*==2* goto a %y%=pdump,src=%c%:%d%,dst=%e%:%f%\%g%.gho -z1 -split=%h% echo 出错了!请检查硬盘! goto a :t "分区备份向导" 第硬盘第分区 备份到 第硬盘第分区:\.gho 警告!如继续操作将覆盖原有同名文件!!!请确认 分卷: MB ("0"表示不分卷) :2 call w y if not %?%*==2* goto a %y%=pload,src=%e%:%f%\%g%.gho:1,dst=%c%:%d%,-split=%h% echo 出错了!请检查硬盘! goto a 上面我就会添了个参数,在往后我就不会了。 ----------------------------------------- 另外你看这个帖子 http://www.cn-dos.net/forum/viewthread.php?tid=28417 我把你的ghost加个img的后缀怎么运行不了了 [ Last edited by jiaju8 on 2007-3-12 at 09:31 PM ] |
|
| 第13楼 andysky | 发表于 2007-03-14 02:05 |
| 初级用户 发帖 21 积分 50 | |
|
越看越复杂
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |