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

[系统相关] 怎样用批处理获取所有盘符并保存在一个变量中?

我自己的代码:
  1. @echo off &color 0a &setlocal enabledelayedexpansion
  2. for /f "tokens=1,* delims= " %%a in ('fsutil fsinfo drives') do (set "code=%%b" && set "code=!code::\=!")
  3. echo.!code!
  4. pause.
复制代码
我的本意是获取所有的盘符,并保存在code里,fsutil fsinfo drives命令获取到的结果是[驱动器: C:\ D:\ E:\]  我只想取得[C D E] (中间有空格),但是,我的代码运行之后只输出[C]。。。求高手解惑,谢谢!!!

  1. @echo off &color 0a &setlocal enabledelayedexpansion
  2. for /f "tokens=1,* delims= " %%a in ('fsutil fsinfo drives') do (set "code=%%b" && set "code=!code::\=!")
  3. echo.[!code!]
  4. pause
复制代码
win7测试表示无压力

TOP

补充:你那Win7 是 64位的?我用的XP.......

TOP

回复 2# yangfengoo


    代码我又修改了下,用XP调试OK,请兄弟帮忙调试下Win7下是否OK,谢谢!!
  1. @echo off &color 0a &setlocal enabledelayedexpansion
  2. if exist "%tmp%\drives.txt" del /s /q /f "%tmp%\drives.txt" >nul 2>nul
  3. for /f "delims=" %%a in ('fsutil fsinfo drives^| more +1') do (set /p=%%a <nul >>"%tmp%\drives.txt")
  4. for /f "usebackq tokens=1,* delims= " %%a in ("%tmp%\drives.txt") do (set "code=%%b" && set "code=!code::\=!")
  5. echo.!code!
  6. pause.
复制代码

TOP

回复  yangfengoo


    代码我又修改了下,用XP调试OK,请兄弟帮忙调试下Win7下是否OK,谢谢!!
q9q9w9e9e 发表于 2012-4-29 13:42



    已经在Windows7 64bit下运行,没有问题

TOP

返回列表