无忧启动论坛

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

批处理高手指点--xp下如何确定最后的盘符?

[复制链接]
跳转到指定楼层
1#
发表于 2006-8-23 21:38:16 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
这几天想做一批处理xp下实现查找最后一个硬盘分区盘符,并建立一个文件夹001
如何实现呢,谢谢!
13#
发表于 2006-9-8 16:30:06 | 只看该作者
论坛有同样的讨论
回复

使用道具 举报

12#
发表于 2006-9-8 15:04:05 | 只看该作者
以上方法存在一定缺陷。
其实应用硬盘分区一般用户都有写入的权限(NTFS分区有配额管理,无访问权除外),使用最原始的方法:试着建立目录,能成功的一般是硬盘分区。
回复

使用道具 举报

11#
发表于 2006-8-27 12:20:43 | 只看该作者
最后一个盘符跟最后一个分区是不同的
回复

使用道具 举报

10#
发表于 2006-8-26 11:48:43 | 只看该作者
你可以参考一下dos之家的一键GHOST,他里面的程序有实现确定最后一个盘符的BAT程序.
回复

使用道具 举报

9#
发表于 2006-8-26 09:03:39 | 只看该作者
Re wjgyz740526 第七楼:

  呵呵,兄也是通情达理之人,我不会耿耿于怀的。当初确实没考虑到NTFS和FAT格式下盘符交错以及存在N个主分区的情况,因为我没这个环境,也不想伤筋动骨创造这样的环境,所以就没有使那段代码适合所有的情况——估计要适合所有的情况,那样的思路也是行不通的。正如lxl1638 在第八楼所指出的那样,不知道楼主是要找到最后一个盘符所代表的磁盘分区,还是最后一个物理分区。
回复

使用道具 举报

8#
发表于 2006-8-26 00:21:53 | 只看该作者
最后一个盘符与最后一个物理分区是不同的,楼主要的是哪样?
回复

使用道具 举报

7#
发表于 2006-8-25 20:33:50 | 只看该作者
对不起,我的话说的重了,因为我也曾经为这个问题伤过脑筋,甚至想过用findcd找到光驱然后再确定最后一个分区,但是最后试验却发现对于ntfs和fat交错或者有n个主分区的磁盘,它的盘符不是顺序排列时是无效的,到现在我也没有好的办法。当然对于通常情况下这个代码还是有用的。我的本意并非诋毁别人,只是想找到能切实解决问题的方法。

再次道歉!
回复

使用道具 举报

6#
发表于 2006-8-25 10:47:55 | 只看该作者
原帖由 wjgyz740526 于 2006-8-24 01:14 PM 发表
这个代码有缺陷的,对于ntfs和fat交错或者有n个主分区的磁盘,它的盘符未必是顺序排列的,所以这个代码没什么用

  对于NTFS和FAT格式交错及N个主分区的情况,由于没有环境,所以暂时不好测试。至于你所说的:所以这个代码没什么用,我实在无法苟同:难道它在盘符顺序排列的情况下也错了吗?或者是在所有的电脑上根本就没有顺序排列的盘符?话也不能说得那么绝对吧?
回复

使用道具 举报

5#
 楼主| 发表于 2006-8-24 18:15:33 | 只看该作者
原帖由 namejm 于 2006-8-23 10:41 PM 发表
  以下代码能实现查找最后一个磁盘分区的功能,离查找最后一个硬盘分区的功能已经不远了,但是尚未找到合适的方案,楼主可以借鉴一下:

@echo off
for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F  ...

感谢这位朋友的批处理,在我的电脑可以找到最后的分区并建立文件夹001,但根据楼上wjgyz740526
的说法,盘符如不是顺序排列的,确实无法找到最后的分区!
我的想法是--查找最后一个磁盘分区--不管它是什么格式的,在那里建立文件夹001..
回复

使用道具 举报

4#
发表于 2006-8-24 17:30:12 | 只看该作者
如果认为二楼的没有,请楼上的,编一个有用的出来?
回复

使用道具 举报

3#
发表于 2006-8-24 13:14:22 | 只看该作者
这个代码有缺陷的,对于ntfs和fat交错或者有n个主分区的磁盘,它的盘符未必是顺序排列的,所以这个代码没什么用
回复

使用道具 举报

2#
发表于 2006-8-23 22:41:04 | 只看该作者
  以下代码能实现查找最后一个磁盘分区的功能,离查找最后一个硬盘分区的功能已经不远了,但是尚未找到合适的方案,楼主可以借鉴一下:

  1. @echo off
  2. for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do (
  3.     if exist %%i:\nul (
  4.         for /f "tokens=3" %%j in ('dir /-c %%i:\') do set freesize=%%j
  5.         set last=%%i
  6.         if not "!freesize!"=="0" goto last_drive
  7.     )
  8. )
  9. goto :eof

  10. :last_drive
  11. echo 最后一个分区是 %last%
  12. md %last%:\001
  13. pause
复制代码
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-16 08:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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