标题: [系统相关] 怎样用批处理获取所有盘符并保存在一个变量中? [打印本页]
作者: q9q9w9e9e 时间: 2012-4-29 11:41 标题: 怎样用批处理获取所有盘符并保存在一个变量中?
我自己的代码:- @echo off &color 0a &setlocal enabledelayedexpansion
- for /f "tokens=1,* delims= " %%a in ('fsutil fsinfo drives') do (set "code=%%b" && set "code=!code::\=!")
- echo.!code!
- pause.
复制代码
我的本意是获取所有的盘符,并保存在code里,fsutil fsinfo drives命令获取到的结果是[驱动器: C:\ D:\ E:\] 我只想取得[C D E] (中间有空格),但是,我的代码运行之后只输出[C]。。。求高手解惑,谢谢!!!
作者: yangfengoo 时间: 2012-4-29 11:56
- @echo off &color 0a &setlocal enabledelayedexpansion
- for /f "tokens=1,* delims= " %%a in ('fsutil fsinfo drives') do (set "code=%%b" && set "code=!code::\=!")
- echo.[!code!]
- pause
复制代码
win7测试表示无压力
作者: q9q9w9e9e 时间: 2012-4-29 12:06
补充:你那Win7 是 64位的?我用的XP.......
作者: q9q9w9e9e 时间: 2012-4-29 13:42
回复 2# yangfengoo
代码我又修改了下,用XP调试OK,请兄弟帮忙调试下Win7下是否OK,谢谢!!- @echo off &color 0a &setlocal enabledelayedexpansion
- if exist "%tmp%\drives.txt" del /s /q /f "%tmp%\drives.txt" >nul 2>nul
- for /f "delims=" %%a in ('fsutil fsinfo drives^| more +1') do (set /p=%%a <nul >>"%tmp%\drives.txt")
- for /f "usebackq tokens=1,* delims= " %%a in ("%tmp%\drives.txt") do (set "code=%%b" && set "code=!code::\=!")
- echo.!code!
- 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 |