[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 20# apang


    哦,是这样呀,我主要是不想用c-z这样的形式都搜索一遍。而是'fsutil fsinfo drives 后迭代一下。c-z都搜索,在一些有读卡器的电脑,会出现驱动器没有准备好或者驱动器空的类似的错误提示。

TOP

横排
  1. @echo off & setlocal enabledelayedexpansion
  2. for %%a 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 (
  3.         if exist %%a:\ (
  4.                 fsutil fsinfo drivetype %%a:|findstr /i "固定 Fixed" && set "v=!v! %%a:"
  5.         )
  6. )>nul
  7. if defined v echo,%v:~1%
  8. pause
复制代码
竖排
  1. @echo off
  2. for %%a 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 (
  3.         if exist %%a:\ (
  4.                 fsutil fsinfo drivetype %%a:|findstr /i "固定 Fixed">nul && echo,%%a:
  5.         )
  6. )
  7. pause
复制代码

TOP

fsutil fsinfo drives 在xp和win7显示结果不一样,以前有过很多次的讨论

TOP

回复 17# freesoft00
10楼就是
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1*" %%a in ('fsutil fsinfo drives ^|find ":\"') do (
  4. echo %%b
  5. for %%i in (%%b) do set a=%%i & echo format !a:~,2!
  6. )
  7. pause
复制代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1*" %%a in ('fsutil fsinfo drives ^|find ":\"') do (
  4. for %%i in (%%b) do set a=%%i & set "s=!s!!a:~,2! " & echo !a:~,2!
  5. )
  6. echo !s:~,-1!
  7. pause
复制代码

TOP

回复 16# pcl_test


    这个只是获取一个盘符的批处理吗?那么请改一下获取全部的盘符,谢谢!横排和竖排分别显示。
但是这个我在xp下面运行是可以获取全部盘符的呀。

TOP

回复 12# freesoft00
你这个代码本身就只是列出一个盘符,有什么问题?

TOP

回复 14# freesoft00


    第一个问题只要加上2>nul就行了

不支持wmi这倒是没想到...

TOP

回复 13# bailong360
Format C:
Format D:
Format E:
Format


   
结果中多了一行后面没有盘符的format
另外,wmi在pe中有很多不支持,而其它的方法只要pe中有文件比较好实现

TOP

  1. @Echo Off
  2. For /F "Skip=1" %%i In ('Wmic LogicalDisk Where DriveType^="3" Get Caption') Do Echo Format %%i
复制代码
感觉Wmic在这个时候要好用一点

TOP

回复 10# pcl_test


    再请教:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
  4. set var=%%i
  5. set drive=!var:~-2!
  6. fsutil fsinfo drivetype !drive!|find "驱动器">nul&& echo !drive!
  7. )
  8. pause
复制代码
这段在xp下面没有问题,而在win7下面只有一个盘符A(我的系统中有A盘)

TOP

回复 10# pcl_test


    thank you!

TOP

本帖最后由 pcl_test 于 2015-3-21 23:51 编辑

回复 9# freesoft00
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1*" %%a in ('fsutil fsinfo drives ^|find ":\"') do (
  4. for %%i in (%%b) do set a=%%i & echo format !a:~,2!
  5. )
  6. pause
复制代码

TOP

比如我要执行fsutil fsinfo drives列出来本地硬盘,然后把执行后的结果作为盘符变量
执行后面的格式化命令
format %str%

TOP

另外一个命令

fsutil fsinfo drives执行的解决是横排,
  1. 驱动器: C:\: D:\  E:\  F:\
复制代码
同样也是,把上面的结果作为变量参数传递到下面的命令执行,下面的命令比如是echo吧,上面的运行结果中有一个驱动器:是需要去掉的。

TOP

ok了,谢谢各位的热心!

TOP

返回列表