找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28482|回复: 4

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

[复制链接]
发表于 2012-4-29 11:41:15 | 显示全部楼层 |阅读模式
我自己的代码:
  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]。。。求高手解惑,谢谢!!!
发表于 2012-4-29 11:56:39 | 显示全部楼层
  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测试表示无压力
 楼主| 发表于 2012-4-29 12:06:27 | 显示全部楼层
补充:你那Win7 是 64位的?我用的XP.......
 楼主| 发表于 2012-4-29 13:42:56 | 显示全部楼层
回复 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.
复制代码
发表于 2012-4-29 19:22:12 | 显示全部楼层
回复  yangfengoo


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



    已经在Windows7 64bit下运行,没有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 23:43 , Processed in 0.018868 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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