标题: [已解决]如何正确的获得纯DOS下的最后分区盘符?
[打印本页]
作者: chishingchan
时间: 2007-12-21 18:10
标题: [已解决]如何正确的获得纯DOS下的最后分区盘符?
:: 检测硬盘最后分区盘符
@echo off
for /f %%a in ('"wmic logicaldisk where DriveType="3" get DeviceID |find /v "DeviceID""') do set lastdrive=%%a
echo CMD 下最后分区盘符是 %lastdrive%。
pause
Quote: |
Partition Status Type Volume Label Mbytes System Usage
C: 1 A PRIMARY 20402.8 FAT32 13%
2 EXTENDED 135925.0 87%
D: 3 LOGICAL 20402.8 NTFS 13%
E: 4 LOGICAL 20402.8 FAT32 13%
F: 5 LOGICAL 45896.6 FAT32 29%
G: 6 LOGICAL 45896.6 FAT32 29%
H: 7 LOGICAL 3325.9 NTFS 2% |
|
在不区分NTFS格式的情况下,(CMD环境)以上代码会返回值为(H:)
如何将%lastdrive%值可以应用在纯DOS(不加载NTFS驱动)下?
在单硬盘的情况下,请高手帮忙在CMD环境下运行批处理后显示:(请具有通用性,不限此硬盘)
CMD 下最后分区盘符是 H:
DOS 下最后分区盘符是 F:
总结代码在41楼
[
Last edited by chishingchan on 2008-4-10 at 10:03 PM ]
作者: Climbing
时间: 2007-12-21 22:34
基本上比较麻烦,如果只有一个主分区还好处理,如果用户有多个主分区,那将会极大增加复杂度。
作者: chishingchan
时间: 2007-12-21 23:27
Quote: |
Originally posted by Climbing at 2007-12-21 10:34 PM:
基本上比较麻烦,如果只有一个主分区还好处理,如果用户有多个主分区,那将会极大增加复杂度。 |
|
那就算是一个主分区、一个扩展分区下分若干逻辑分区的情况来解答一下吧!
作者: qzwqzw
时间: 2007-12-21 23:46
DOS命令行下识别分区通常都是直接取gdisk或者ghost /d的输出的
如果能给最后的分区设上标记的话
工作将会比较简单
否则处理量会比较大一点
我见过的代码大部分都是加在指定分区加标记文件
当然以前也做过标记卷标的讨论
作者: chishingchan
时间: 2007-12-22 00:13
wmic logicaldisk where "DriveType=3" get DeviceID,FileSystem
因我我对FOR命令用得不怎么熟,上面这行应该可以实现:查找FAT32字符,从C:起开始按个数分配,例如:有3个FAT32的就确定为C:D:E:,即DOS最后的盘符为E:,熟悉FOR的朋友能否帮忙列出完整的批处理?
其实只查找 FAT 的字符就等于包含了 DOS 所认的盘符了。
[
Last edited by chishingchan on 2007-12-22 at 12:15 AM ]
作者: chishingchan
时间: 2007-12-22 00:53
帮忙一下吧!在线等。。。
作者: lianjiang2004
时间: 2007-12-22 08:05
理解错误,不好意思。
[
Last edited by lianjiang2004 on 2007-12-22 at 05:13 PM ]
作者: lianjiang2004
时间: 2007-12-22 08:37
理解错误,不好意思。呵呵。
[
Last edited by lianjiang2004 on 2007-12-24 at 08:03 AM ]
作者: Climbing
时间: 2007-12-22 08:44
@lianjiang:
你的批处理是运行在纯DOS环境下的,这不符合楼主提出的在cmd下运行的要求。
下面是我的解决方案:
gdisk32 | find /c /i "fat"
看一下这个结果,根据结果数字很容易得出最后分区在DOS下的盘符:
c: d: e: f: g: ...
1 2 3 4 5 ...
作者: lianjiang2004
时间: 2007-12-22 08:46
Quote: |
Originally posted by Climbing at 2007-12-22 08:44:
@lianjiang:
你的批处理是运行在纯DOS环境下的,这不符合楼主提出的在cmd下运行的要求。
下面是我的解决方案:
gdisk32 | find /c /i "fat"
看 ... |
|
如何正确的获得纯DOS下的最后分区盘符?
要的是纯dos下的吧?
作者: chishingchan
时间: 2007-12-22 10:11
Quote: |
Originally posted by Climbing at 2007-12-22 08:44 AM:
@lianjiang:
你的批处理是运行在纯DOS环境下的,这不符合楼主提出的在cmd下运行的要求。
下面是我的解决方案:
gdisk32 | find /c /i "fat" |
|
说的没错!是在CMD下得到DOS下的最后盘符。
gdisk32 | find /c /i "fat" 得到的结果是 0
我想是漏了个1吧!?
gdisk32 1 | find /c /i "fat" 在我的电脑上得到的结果是 6,因为我的分区全是FAT32的,顶楼是为例改成NTFS的。
GDISK32容量太大了,能否使用XP自带的命令处理?能否列出完整的批处理?
作者: chishingchan
时间: 2007-12-22 10:25
7楼仁兄用了几个外部程序及一个过渡文件,觉得不够理想。在经典代码里找出以下查看硬盘信息的一段批处理:
@echo off
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2 delims=\" %%a in ('fsutil fsinfo drives^|find /v ""') do (
set aa=%%a
set aa=!aa:~-2!
for %%i in (!aa!) do fsutil fsinfo drivetype %%i
)
pause
能否结合
wmic logicaldisk where "DriveType=3" get DeviceID,FileSystem
得到我想要的结果?
作者: lianjiang2004
时间: 2007-12-22 11:17
理解错误,删除。
[
Last edited by lianjiang2004 on 2007-12-24 at 08:03 AM ]
作者: lianjiang2004
时间: 2007-12-22 11:21
当然各人的用途不同,处理思路肯定也不一样。
作者: chishingchan
时间: 2007-12-22 11:50
Quote: |
Originally posted by lianjiang2004 at 2007-12-22 11:17 AM:
CMD下运行结果,与dos下是否一定一样?
windows下所谓的盘符错乱,不知会不会影响结果。
个人以为可靠的还是dos下直接获取。 |
|
单硬盘的话出现盘符错乱的结果一般很少,犹其是我所说的一主一扩几逻辑的分区方式。
CMD环境下的硬盘处理的自带命令行工具非常丰富,且无必要到DOS下的话就尽量避免。谢谢你的解答!
你说每个人的意愿都不同的,希望你能帮助我如题的解答。
作者: lianjiang2004
时间: 2007-12-22 12:11
windows下的办法,上面你找的办法应该可以了吧?
[
Last edited by lianjiang2004 on 2007-12-24 at 08:01 AM ]
作者: chishingchan
时间: 2007-12-22 13:17
应用在GHOST恢复的路径指定,全自动方式的,无需手工更改,直接在CMD下完成
补充一句,还联合影子系统批处理安装的,自动修改BOOT.INI、AUTOEXEC.BAT、CONFIG.SYS、支持中文菜单显示...等等
影子系统2008:现时只有智冠工作室的属真正破解,但安装庞大。这个问题我已解决!只须几十KB就搞定了。(此项在纯DOS下绝对安装不了的)
BOOT.INI: 在
http://www.cn-dos.net/forum/viewthread.php?tid=36376&fpage=1 得到解决方法
AUTOEXEC.BAT & CONFIG.SYS 的中文显示在中文版块有详细介绍。
只欠东风了:如题
[
Last edited by chishingchan on 2007-12-22 at 01:25 PM ]
作者: lianjiang2004
时间: 2007-12-22 13:22
特定机子用?还是通用?
作者: lianjiang2004
时间: 2007-12-22 13:23
用意不明白,呵呵。
[
Last edited by lianjiang2004 on 2007-12-24 at 08:01 AM ]
作者: chishingchan
时间: 2007-12-22 13:30
当然是通用的啦,按照我说的思路绝对行得通:查看FAT字符,按个数分配,3个的就属E:、5个的话就属G:(相关命令行请看前几楼)
作者: chishingchan
时间: 2007-12-22 13:33
Quote: |
Originally posted by lianjiang2004 at 2007-12-22 01:23 PM:
那需要盘符吗?指定分区号不就完了?
用意不明白,呵呵。 |
|
用意说到这里各位大概也知道了吧?!指定分区也就掺入了人工处理的成份了。
作者: lianjiang2004
时间: 2007-12-22 13:39
不满足你要的条件的话,如何处理?等等。
恕我愚昧,本人到现在对你的意图不明白的还太多了。呵呵。
[
Last edited by lianjiang2004 on 2007-12-24 at 08:02 AM ]
作者: lianjiang2004
时间: 2007-12-22 13:42
何况windows下,你数出的E:,dos也不见得就一定是E:。
对于你的这个问题,本人知道的就这么一点点,无能为力了。
作者: chishingchan
时间: 2007-12-22 13:44
Quote: |
Originally posted by lianjiang2004 at 2007-12-22 12:11 PM:
不知道windows下手动修改盘符后,会是一个什么结果。
最关键的,不知你取得盘符后的目的是什么?
特定机子用?还是通用?
windows下的办法,上面你找的办法应该可以了吧?
还在寻求什么答案? |
|
就是不知怎样将两个命令行合理的串联或修改啊,思路是有,但技术有限嘛!
作者: chishingchan
时间: 2007-12-22 13:46
Quote: |
Originally posted by lianjiang2004 at 2007-12-22 01:42 PM:
何况windows下,你数出的E:,dos也不见得就一定是E:。
对于你的这个问题,本人知道的就这么一点点,无能为力了。 |
|
你也挺强的嘛,2006注册的到现在成了金牌会员了。这点问题应该难不了你啊?!:D
作者: chishingchan
时间: 2007-12-22 13:49
lxmxn 版主在不在?“超级潜水员” 的很多问题都让你解决了。这个可否思考一下帮忙解决呢?
作者: lxmxn
时间: 2007-12-22 15:08
标题: 参考这个命令
WMIC LOGICALDISK WHERE "FILESYSTEM LIKE '%FAT%' AND DRIVETYPE<4" GET NAME,FILESYSTEM,FREESPACE,SIZE
作者: chishingchan
时间: 2007-12-22 16:11
lxmxn 版主
还有下文呢!?
因为我的电脑所有分区都是FAT32格式的,测试可能不妥。
能否给个完整的批处理啊?
[
Last edited by chishingchan on 2007-12-22 at 04:16 PM ]
作者: chishingchan
时间: 2007-12-22 16:19
在批处理得不到结果,显示:无可用范例。但在命令行中可行,这个跟5楼下面的代码相近啊
作者: qzwqzw
时间: 2007-12-23 02:17
未详细测试
:: LocBak.bat qzwqzw 2007-12-22
:: 定位系统盘与备份盘分区编号与可用盘符
@echo off & setlocal EnableDelayedExpansion
set cmdline=wmic logicaldisk get deviceid,freespace,size ^| find /n "%SystemDrive%"
for /f "tokens=1,3,4 delims=[] " %%i in ('"%cmdline%"') do (
set /a syspartid=%%i-1
set freesize=%%j
set size=%%k
set /a usedsize=!size:~-12,-6! - !freesize:~-12,-6!
set /a usedsize=usedsize*1000*3/1048/4
)
echo 系统盘为: %SystemDrive%, 分区号为: %syspartid%, 镜像占用约为: %usedsize% MB.
wmic logicaldisk where "drivetype=3" get DeviceID,FileSystem,FreeSpace > %systemdrive%\_drives.txt
set driveid=-1
set dosdriveid=-1
for /f "tokens=1,2,3" %%i in ('type %systemdrive%\_drives.txt') do (
set /a driveid+=1
set filesystem=%%j
if "!filesystem:~0,3!"=="FAT" (
set freesize=%%k
set /a freesize=!freesize:~-12,-6! * 1000 / 1048
set /a dosdriveid+=1
if 1!freesize! geq 1%usedsize% (
set BackupDrive=%%i
set BackupDriveID=!driveid!
set BackupDOSDriveID=!dosdriveid!
)
)
)
if "%BackupDrive%"=="" echo 未找到符合要求的备份盘 & exit /b 1
set BackupDOSDrive=CDEFGHIJKLM
set BackupDOSDrive=!BackupDOSDrive:~%BackupDOSDriveid%,1!:
echo 备份盘为: %BackupDrive% (DOS:%BackupDOSDrive%), 分区号为: %BackupDriveID%, 剩余空间约为: %freesize% MB.
作者: chishingchan
时间: 2007-12-23 08:09
系统盘为: D:, 分区号为: 3, 镜像占用约为: 454 MB.
备份盘为: H: (DOS:H:), 分区号为: 6, 剩余空间约为: 1284 MB.
分区号为:3 这个应该是2吧!我的硬盘分区没有NTFS格式的,不知如何测试?且我不需要这么多的结果,只需知道最后盘符就行。
作者: lianjiang2004
时间: 2007-12-23 08:30
仅是个人的一点经验,仅供参考。
[
Last edited by lianjiang2004 on 2007-12-24 at 08:01 AM ]
作者: chishingchan
时间: 2007-12-23 09:02
有进展了,qzwqzw 的例子修改如下:
@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1" %%i in ('wmic logicaldisk where "drivetype=3" get FileSystem') do (
set filesystem=%%i
if "!filesystem:~0,3!"=="FAT" set /a id+=1
)
echo %id%
set Drive=CDEFGHIJKLMNOPQRSTUVWXYZ
set lastdrive=!Drive:~%id%,1!:
echo %lastdrive%
pause
返回值与目标不符!
返回值 ID=6
目标盘符 =I: (这里应该是H:才对)
作者: chishingchan
时间: 2007-12-23 09:06
现在唯有将
set Drive=CDEFGHIJKLMNOPQRSTUVWXYZ
修改为(=号后加空格)
set Drive= CDEFGHIJKLMNOPQRSTUVWXYZ
这样才对。
谁能帮忙解答为什么会出现这种情况?
谁能再为上面的代码精简一下?
作者: qzwqzw
时间: 2007-12-23 13:46
@echo off & setlocal EnableDelayedExpansion
set drives= CDEFGHIJKLMNOPQRSTUVWXYZ
for /f %%i in ('wmic logicaldisk get FileSystem ^| find /c "FAT"') do set lastdrive=!drives:~%%i,1!
echo 在纯DOS下最后一个可识别的硬盘分区的盘符为:%lastdrive%
这是专为你的应用精简的代码
但是我感觉这个方案如果用于系统备份分区的选择考虑很不周全
不知你是否考虑过分区的剩余空间是否满足要求
以及USB-HDD引导后盘符发生移位的可能
至于我的上一段代码的问题可能源于你的WMIC的输出比较特殊
如果有兴趣的话可以单独将WMIC的输出结果贴上来看看
你的修改代码返回值不符的问题在于你没有完全理解 set 的取子串规则
set 取字串的下标是从0算起的
也就是说~0代表第一个字符,~1代表第二个字符
[
Last edited by qzwqzw on 2007-12-23 at 01:55 PM ]
作者: chishingchan
时间: 2007-12-23 15:38
谢谢!算作解决了。
作者: lianjiang2004
时间: 2007-12-23 16:14
通用性很怀疑。呵呵。
作者: chishingchan
时间: 2007-12-23 16:33
Quote: |
Originally posted by lianjiang2004 at 2007-12-23 04:14 PM:
通用性很怀疑。呵呵。 |
|
你的技术也值得怀疑啊!:D 说了这么多对我的问题一点也帮不上忙。
说笑!别见怪!
作者: chishingchan
时间: 2007-12-23 16:36
正所谓一样通百样明,不完善的地方我会慢慢地去处理的。
qzwqzw 对此帮忙功不可没,衷心感谢。犹其是30楼的代码,以后还有参考的地方。
作者: chishingchan
时间: 2007-12-23 16:52
标题: 选择优化方案
以下是 35 楼发贴我想的精简方案:
@echo off
setlocal EnableDelayedexpansion
for /f "tokens=1" %%i in ('wmic logicaldisk where "drivetype=3" get FileSystem ^|findstr "FAT"') do set /a id+=1
set Drive= CDEFGHIJKLMNOPQRSTUVWXYZ
set lastdrive=!Drive:~%id%,1!:
echo %lastdrive%
pause>nul
以下是 35 楼的精简方案:
@echo off & setlocal EnableDelayedExpansion
set drives= CDEFGHIJKLMNOPQRSTUVWXYZ
for /f %%i in ('wmic logicaldisk get FileSystem ^| find /c "FAT"') do set lastdrive=!drives:~%%i,1!
echo 在纯DOS下最后一个可识别的硬盘分区的盘符为:%lastdrive%
虽然我的精简方案比较长,35 楼的方案精简,运行后大家估计会如何?
1、我的显示速度快,35 楼的比较慢;
2、我的运行很安静,35 楼的会响一声(读软驱)。
作者: chishingchan
时间: 2007-12-23 16:59
最后总结
@echo off
setlocal EnableDelayedExpansion
set drives= CDEFGHIJKLMNOPQRSTUVWXYZ
for /f %%i in ('wmic logicaldisk where "drivetype=3" get FileSystem ^| find /c "FAT"') do set lastdrive=!drives:~%%i,1!:
echo %lastdrive%
pause>nul
作者: lianjiang2004
时间: 2007-12-23 20:43
这里高手如云,关于你要的windows下获取盘符的办法,我就没有发言的资格了。
不过,我想,在前面几楼里,指出的需要注意的几个问题,难道对你没益处吗?
[
Last edited by lianjiang2004 on 2007-12-24 at 08:00 AM ]
作者: Climbing
时间: 2007-12-23 21:13
是啊,这种方案只能针对一个硬盘主分区的情况,如果有多个主分区,就完全不适用,还是ghost的1:x指定分区的方式比较稳定可靠。gghost好象就使用了这种方案。
作者: lianjiang2004
时间: 2007-12-23 21:30
限于水平,很遗憾没能直接帮上你的忙,希望指出的一些其它问题,也能引起你的足够重视。
[
Last edited by lianjiang2004 on 2007-12-24 at 07:59 AM ]
作者: chishingchan
时间: 2007-12-24 10:05
在这里隆重的热烈的谢谢 lianjiang2004
确实获益非浅。
复43楼:这个是我帮人家装机时用的,一般处理如下:
1、在需要重装的电脑上备份驱动到U盘
2、带DOS启动的XPSP2安装盘一张:分区(SPFDISK.EXE)、传送DOS系统(SYS.COM)、光盘方式安装XPSP2(自制精简版)
3、第二次启动时备份一次(无驱动备份)
4、安装驱动
5、运行自制程序:服务优化、文件夹转移、影子系统、恢复软件、DOS文件
6、再次备份一次系统(带驱动备份)
7、安装常用软件
8、最后再备份一次系统
注:因使用精简版,所以精简的系统也就 2?? MB
最后备份的一般也超不过 1 G
各位看上面就知道,本人全程监控的,还需检测容量、分区错乱等等的必要吗?
作者: lianjiang2004
时间: 2007-12-24 10:11
因为你到现在才说出真正用途。呵呵。
这就是我在开始就提出的,是通用还是特定机子用。
根据你的用途,只能说是个人专用的通用。而非我们理解的一般意义上的通用。
作者: lianjiang2004
时间: 2007-12-24 10:14
自己从头到尾搞得机子,备份恢复,可启动盘加行批处理就能搞定了。
作者: lianjiang2004
时间: 2007-12-24 10:19
实际上需要的就是dos的系统文件3个,加ghost.exe,再加含一行ghost命令行的autoexec.bat应就能完成了。呵呵。
作者: qzwqzw
时间: 2007-12-24 23:42
仍然不太理解楼主的意图
全程监控是否意味着全程手动备份
如果说是全程手动备份
那么就没有自动化的必要
直接手动选择分区无疑是最稳妥的
如果说是半自动化备份
那么需要考虑是在哪个时刻实现自动化
从楼主的需求来看
应该是在进入WinXP系统后
自动或手动执行写好的批处理代码
这段代码会写一个应用于DOS下Ghost备份的临时批处理
但是就如之前所讨论的那样
如果要为Ghost中自动指定分区
则使用分区号往往会优于盘符(我没有发现反例)
而且分区号的获取比盘符的获取更加容易
而如果并非为Ghost自动指定分区
则获取最后一个FAT/FAT32分区盘符的作用就很让人费解~~
作者: chishingchan
时间: 2007-12-25 11:01
各人的意愿不同,是没有说的!
例如:有次我帮别人买电脑时,对装机的人员交待如何如何分区,那人直摇头。
你说他知道我对硬盘的用途如何吗?
作者: lianjiang2004
时间: 2007-12-25 11:22
Quote: |
Originally posted by chishingchan at 2007-12-25 11:01:
各人的意愿不同,是没有说的!
例如:有次我帮别人买电脑时,对装机的人员交待如何如何分区,那人直摇头。
你说他知道我对硬盘的用途如何吗? |
|
现在的问题是,你全程监控,按你的意愿装机,分区,倒是简单了,请问如何保证你分的样子就是用户需要的?
看来是一笔糊涂账。呵呵。
作者: lianjiang2004
时间: 2007-12-25 11:32
更不理解的为何一定要个fat分区来保存备份。呵呵。
水平有限,无法理解。
作者: qzwqzw
时间: 2007-12-25 11:58
我明确知道你的意图不是我所想象的
而技术交流正是我们讨论这个问题的目的所在
虽然你曾多次解释你的需求背景
但是仅从这些文字我们无法看出它们之间的必然联系
这只存在两种可能性
一者是你的需求与你的方案并无必然联系
二者是你并没有完全表述清楚你的方案
如果你的技术方案存在某种隐私级别
那么你可以对方案的大致轮廓做一个介绍
而且最好在我们所关心的分区指定上多做一些说明
一者让它人可以从你的方案中获取经验
二者也可让自己方案更臻完善
虽然这些说明并不是必需的
但是这是对关心以及回复过你的问题的人的尊重
[
Last edited by qzwqzw on 2007-12-25 at 12:02 PM ]
作者: lianjiang2004
时间: 2007-12-25 12:16
总结这几天我的回复,
1,若用户机的分区状态你能控制,则无需什么自动查找最后fat分区对应的盘符,有更简单的处理办法。
2,若你无法控制,则自动查找最后fat分区对应的盘符,缺少通用性,毫无意义。
作者: terse
时间: 2007-12-25 19:29
或许在fat分区创建~1文件夹吧 因为~1文件夹创建在NTFS分区在WIN下可以看到 个人猜测
其实 也可以这样FOR:
for /f "skip=1 tokens=1" %%i in ('wmic logicaldisk where "FileSystem='FAT32'"') do set /a id+=1
[
Last edited by terse on 2007-12-25 at 07:39 PM ]
作者: chishingchan
时间: 2008-4-10 22:00
Quote: |
Originally posted by lianjiang2004 at 2007-12-25 11:32 AM:
更不理解的为何一定要个fat分区来保存备份。呵呵。
水平有限,无法理解。 |
|
GHOST 是DOS下的软件,且我也不想多用读写NTFS分区格式的软件,所以分区成FAT32的格式!
作者: oilio
时间: 2008-4-11 14:19
按照楼主在41F的代码,是不是这样更方便?
wmic bootconfig get lastdrive
作者: chishingchan
时间: 2008-4-11 23:54
Quote: |
Originally posted by oilio at 2008-4-11 02:19 PM:
按照楼主在41F的代码,是不是这样更方便?
wmic bootconfig get lastdrive |
|
57楼的朋友没注意是"获得纯DOS下"的字眼吧?
作者: oilio
时间: 2008-4-12 10:55
你自己说的代码总结在41楼啊,你41楼不也是用了wmic了吗?你修改过后的第一贴的第一个代码也用到了wmic啊,而且我说了,是按你在41楼的代码,是不是用我的那个更简短一点。我的话有任何不妥吗?
作者: chishingchan
时间: 2008-4-12 17:18
Quote: |
Originally posted by oilio at 2008-4-12 10:55 AM:
你自己说的代码总结在41楼啊,你41楼不也是用了wmic了吗?你修改过后的第一贴的第一个代码也用到了wmic啊,而且我说了,是按你在41楼的代码,是不是用我的那个更简短一点。我的话有任何不妥吗? |
|
楼主再细看一下1楼的贴子,要求是在CMD环境下获得纯DOS下的最后分区。
其实你这段代码比我以前所收藏的代码还要精简一些,这个我收下了。
作者: cctv8068
时间: 2008-4-21 18:40
谢谢了,不错
作者: chishingchan
时间: 2008-11-25 23:02
请问排除 WMIC 如何实现此功能呢?
作者: wangff
时间: 2008-11-26 09:03
@echo off
setlocal enabledelayedexpansion
set bb=
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 (
dir %%i:\##### 2>t >nul
set/p aa=<t
if "!aa!"=="系统找不到指定的路径。" (
echo !bb!:
goto :eof
)
set bb=%%i
)
土!可能有效.
[
Last edited by wangff on 2008-11-26 at 09:11 ]
作者: wangff
时间: 2008-11-26 11:06
@echo off
setlocal enabledelayedexpansion
set bb=
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 (
set aa=
for /f "tokens=*" %%a in ('dir %%i:\#### 2^>^&1^|findstr /I "specified 指"') do set aa=%%a
if not "!aa!"=="" (
echo !bb!:
goto :eof
)
set bb=%%i
)
去掉过渡文件,中英文兼容
作者: sea1112
时间: 2008-11-26 21:28
Quote: |
Originally posted by chishingchan at 2007-12-23 04:59 PM:
最后总结
[code]
@echo off
setlocal EnableDelayedExpansion
set drives= CDEFGHIJKLMNOPQRSTUVWXYZ
for /f %%i in ('wmic logicaldisk where "drivetype=3" get FileSystem ^| find /c &quo ... |
|
纯DOS里的FOR /F 没有这个吧,你用的是什么DOS
作者: qqqrun3
时间: 2010-11-13 05:35
找好久,才在这里找到此问题的解决办法,太谢谢了