无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 7541|回复: 19
打印 上一主题 下一主题

求一段检测文件是否在的批处理

[复制链接]
跳转到指定楼层
1#
发表于 2008-6-19 14:19:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
例:
偶新建了一个文件名为backup.cmd的批处理文件,内容是这样:

@echo off
CLS
rem 一键备份C盘
echo.
echo.
echo.
echo    一键备份C盘  By:yigeren
echo.
echo.
echo  警告: 一旦"备份",立即执行,原有备份文件将被覆盖!
echo.
echo  提示: 按"B"键,再按回车键,开始备份,  按"Q"键退出.
echo.
echo.
echo.
echo.
echo.
Set Choice=
Set /P Choice= 请选择备份或退出:
If "%Choice%"=="" Goto Call
If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
If /I "%Choice%"=="B" Goto backup
If /I "%Choice%"=="Q" Exit
call backup.cmd
:backup
md d:\gho..\
cls
ghost32.exe -clone,mode=pdump,src=1:1,dst="1:2\gho~1\yigeren.GHO" -z3 -fx -sure
goto end
:Call
call backup.cmd
goto end
:end


注:gho..\是畸形目录 用CD gho~1可进入目录里面
现在想弄的是在按 B 键执行时,让它检查下D:\gho~1\yigeren.gho文件是否存在,如果有存在,就提示已经有备份过了,如果要重新备份请按 Y 键,否则按 N 键退出或者按 M 键返回菜单,如果检查不到yigeren.gho文件,就直接备份了

请大家帮帮忙,谢谢了
2#
发表于 2008-6-19 17:19:30 | 只看该作者
看来你是用 ghost32 在Windows 做备份,探测文件是否存在仍然可以用 “if exist filename...”,举例如下:

@echo off
if exist D:\gho~1\yigeren.gho (
echo 已经备份过了&goto bakset
) else (
goto backup
)

:bakset
echo.
Set b=
Set /P b= 重新备份按Y,退出按N 》
if %b%#==# goto bakset
if /i %b%==Y goto backup
if /i %b%==N goto end
goto end

:backup
echo.
echo 开始备份了...
pause>nul

:end
cls
echo.
echo 该结束了!
pause>nul
回复

使用道具 举报

3#
发表于 2008-6-19 17:43:09 | 只看该作者

建议 用choice.com供用户选择

用if errorlevel语句判断用户的选择,记得dos6.22中有choice.com命令,先下载安装盘文件,用expand choice.co_ choice.com解压获得。

批处理改为如下方式  

@echo off
CLS
rem 一键备份C盘
echo.
echo.
echo.
echo    一键备份C盘  By:yigeren
echo.
echo.
echo  警告: 一旦"备份",立即执行,原有备份文件将被覆盖!
echo.
echo  提示: 按"B"键,,开始备份,  按"Q"键退出.
echo.
echo.
echo.
echo.
echo.
choice.com /c:bq  /t:q,20
if errorlevel 2 goto  end
if errorlevel 1 goto check
:check
if exist D:\gho~1\yigeren.gho  echo 已经有备份过了,如果要重新备份请按 Y 键,否则按 N 键退出或者按 M 键返回菜单
choice.com /c:ynm  /t:m,20
if errorlevel 3 goto callback
if errorlevel 2 goto  end
if errorlevel 1 goto backup

:backup
md d:\gho..\
cls
ghost32.exe -clone,mode=pdump,src=1:1,dst="1:2\gho~1\yigeren.GHO" -z3 -fx -sure
goto end
:callback
代码

:end
:
:end
回复

使用道具 举报

4#
发表于 2008-6-19 18:06:33 | 只看该作者
既然是判断d:\下有没备份,就不要用1.2:\了,易造成兼容性问题。
回复

使用道具 举报

5#
 楼主| 发表于 2008-6-19 18:51:09 | 只看该作者
呵呵,这个批处理是要用在PE系统下的,偶测试测试代码,谢谢大家了:)
回复

使用道具 举报

6#
 楼主| 发表于 2008-6-19 20:21:46 | 只看该作者
这是偶修改好的代码,请大家再看看,有需要改进的地方没

还有一点就是如何在PE系统把畸形目录设置为隐藏,用ATTR命令在PE下运行无效,attrib显示无法更改属性

另3楼的方法不行,PE系统运行无效,复制choice文件到SYSTEM32目当里,

@echo off
CLS
rem 一键备份C盘
echo.
echo.
echo.
echo                         一键备份C盘  By:yigeren
echo.
echo.
echo                警告: 一旦"备份",立即执行,原有备份文件将被覆盖!
echo.
echo                提示: 按"B"键,再按回车键,开始备份, 按"Q"键退出.
echo.
echo.
echo.
echo.
echo.
Set Choice=
Set /P Choice= 请选择备份或退出:
If "%Choice%"=="" Goto Call
If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
If /I "%Choice%"=="B" Goto backup
If /I "%Choice%"=="Q" Exit
call backup.cmd
:backup
if exist D:\gho~1\yigeren.gho (
Cls
echo.
echo.
echo.
echo                         系统已经备份过了&goto bakset
) else (
md d:\gho..\
cls
ghost32.exe -clone,mode=pdump,src=1:1,dst="D:\gho~1\yigeren.GHO" -z3 -fx -sure
goto end
)
:Call
call backup.cmd
goto end

:bakset
echo.
echo.
echo.
Set b=
Set /P b=         重新备份系统请按"Y"键,返回菜单按"M"键,退出按"Q"键:
if %b%#==# goto bakset
if /i %b%==Y goto reset
if /i %b%==M goto Call
if /i %b%==Q goto end
cls
echo.
echo.
echo.
echo                         系统已经备份过了
goto bakset
goto end

:reset
cls
ghost32.exe -clone,mode=pdump,src=1:1,dst="D:\gho~1\yigeren.GHO" -z3 -fx -sure
goto end
:end

[ 本帖最后由 yigeren 于 2008-6-19 08:36 PM 编辑 ]
回复

使用道具 举报

7#
发表于 2008-6-19 21:14:37 | 只看该作者
用 Choice 程序来做相对要简洁一点,还有倒计时功能。不知道3楼用的什么版本的 Choice 程序,或者是笔误。你把冒号改成空格应该就可以了。

Choice /? 看看参数吧

echo  提示: 按"B"键,,开始备份,  按"Q"键退出.5秒后默认备份到D盘
Choice /c BQ /t 5 /D B /n /m

关于属性的更改,你在论坛搜索一下,以前好像有人发过类似的专用 ATTRIB 工具。

[ 本帖最后由 xypcmac 于 2008-6-19 09:15 PM 编辑 ]
回复

使用道具 举报

8#
 楼主| 发表于 2008-6-20 01:20:40 | 只看该作者
呵呵,好的,偶找找看,暂时偶就用那个修改好的批处理了,再次感谢:)
回复

使用道具 举报

9#
 楼主| 发表于 2008-6-20 15:06:45 | 只看该作者
那个attrib工具在PE系统不能用,好象是16位的,
发现一点,用GHOST版本11.5的GHOST32.exe设置密码备份后,用GHOST浏览器输入正确的密码一样无效,DOS版本的不存在这个问题
回复

使用道具 举报

10#
发表于 2008-6-20 15:31:10 | 只看该作者
刚试了一下,是可以的。
回复

使用道具 举报

11#
 楼主| 发表于 2008-6-20 16:04:39 | 只看该作者
什么可以?是设置畸形目录还是GHOST32设置密码?
回复

使用道具 举报

12#
发表于 2008-6-20 16:15:12 | 只看该作者
说的当然是该帖子的主题了。畸形目录 的属性更改

我看这个比你去设置文件权限要安全些,毕竟 PE 下都可以控制文件的权限。
回复

使用道具 举报

13#
 楼主| 发表于 2008-6-20 16:40:49 | 只看该作者
那能把你的文件上传提供下吗?偶用你的文件试试
回复

使用道具 举报

14#
发表于 2008-6-20 18:49:48 | 只看该作者
跟你下载的应该是一样的

Test.rar

4.99 KB, 下载次数: 91, 下载积分: 无忧币 -2

回复

使用道具 举报

15#
 楼主| 发表于 2008-6-20 19:09:56 | 只看该作者
还是不行,运行attrib后,就显示如下图,然后光标一直闪,不能继续执行代码了
直接运行test.bat也是一样的,难道是PE系统问题,Win系统下没问题,偶用的内核是老毛桃的070911



[ 本帖最后由 yigeren 于 2008-6-20 07:16 PM 编辑 ]
回复

使用道具 举报

16#
发表于 2008-6-20 19:39:41 | 只看该作者
不会缺文件吧,呵呵。
回复

使用道具 举报

17#
 楼主| 发表于 2008-6-20 20:09:33 | 只看该作者
如果是缺文件,会是缺少什么文件呢?
回复

使用道具 举报

18#
发表于 2008-6-20 20:09:35 | 只看该作者
该说是缺少环境吧!PE 没有 command 环境转换。我一直都在Windows做的测试。


其实,这也没什么大不了的吧!大多数都在Windows下安装,那时已经建立好了。
如果你追求完美的话,用 omnifs32.exe ,完全可以搞定,无论PE还是Windows环境。
回复

使用道具 举报

19#
发表于 2008-6-20 21:54:53 | 只看该作者
不错的文章,,,学习了
回复

使用道具 举报

20#
 楼主| 发表于 2008-6-20 23:20:43 | 只看该作者
暂时只能在安装PE系统时,加入建立畸形目录的代码,然后用ATTR把它设置为隐藏目录了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-13 06:05

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表