@echo off
set cdrom1=
findcd /s>nul
if not "%cdrom1%"=="" strings last=left %cdrom1%,1,1
if not "%cdrom1%"=="" goto ston
for %%n 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 %%n:\nul set last=%%n
:ston
strings last=val %last%
strings last=sub %last%,67
if "%cdrom1%"=="" strings last=add %last%,1
echo %last%
set cdrom=
set cdrom1=
(测试环境:MS-DOS7.10)作者: lianjiang2004 时间: 2007-1-27 09:14
Originally posted by lianjiang2004 at 2007-1-26 08:14 PM:
NTFS分区能处理的了吗?
NTFS分区是不支持DOS的,除非加载ntfsdos、ifs等第三方驱动。作者: lianjiang2004 时间: 2007-1-27 10:26 加载后,盘符与分区的对应关系也要处理才行。作者: yhzlt2008 时间: 2007-1-31 05:36 @echo off
set drv=c d e f g h i j k l m n o p q r s t u v w x y z
if "%1"=="" if "%last_drv%"=="" call %0 %drv%
:set_last
if "%1"=="" goto end
md %1:\last.drv>nul
if not exist %1:\last.drv\nul goto end
rd %1:\last.drv>nul
set last_drv=%1:
shift
goto set_last
:end
这个批处理这样写对吗?作者: lizaoyou 时间: 2007-1-31 10:33 无光驱等时,应该可以通过,说点看法:
1. md 行的 >nul 似乎不起作用,因为若盘符有效,md 是不产生信息的,若盘符无效,>nul 又不能屏蔽错误信息。
2. 通过建临时目录的方法进行判断似嫌多余,可将 if not ... 行简化为 if not exist %1:\nul goto end,并删除前后两行(md、rd 行),同样可达到目的。
3. 镜像要ghost到最后一个分区,还需将盘符转为数字。
[ Last edited by lizaoyou on 2007-1-30 at 09:47 PM ]作者: hnlyzhd 时间: 2007-1-31 10:42 我把用的贴出来大伙看看
判断最后分区并分配变量:
===========================
CLS
:1
FIND /I "%P%:%1" GHSTSTAT.TXT >NUL
IF ERRORLEVEL 1 GOTO 2
SET IMAGEDRV=%P%:%1
GOTO 1
[ Last edited by jiaju8 on 2007-3-13 at 04:16 PM ]作者: cfenjin 时间: 2009-12-11 10:22 能不能写一个完整的,让ghost把镜像备份到最后一个分区的批处理。作者: lianjiang2004 时间: 2009-12-22 10:40
Quote:
Originally posted by cfenjin at 2009-12-11 10:22:
能不能写一个完整的,让ghost把镜像备份到最后一个分区的批处理。