Board logo

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

作者: q9q9w9e9e    时间: 2012-4-29 11:41     标题: 怎样用批处理获取所有盘符并保存在一个变量中?

我自己的代码:
  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]。。。求高手解惑,谢谢!!!
作者: yangfengoo    时间: 2012-4-29 11:56

  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测试表示无压力
作者: q9q9w9e9e    时间: 2012-4-29 12:06

补充:你那Win7 是 64位的?我用的XP.......
作者: q9q9w9e9e    时间: 2012-4-29 13:42

回复 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.
复制代码

作者: tomato007    时间: 2012-4-29 19:22

回复  yangfengoo


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



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




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2