|
AppleWolf
初级用户
积分 110
发帖 41
注册 2007-3-31
状态 离线
|
『楼 主』:
[求助]一个求盘符的问题.
问题如下:
1. 我要写个备份程序,这个程序需要映射网络驱动器,则需要使用系统中可以用的盘符.
2. 我的计算机上盘符环境有点特殊,C为硬盘,D为硬盘,E为光盘,F为虚拟光驱,Z为内存虚拟盘(主要用来存放操作系统页面文件和临时文件)
问题产生了,我搜了坛子里所有与"盘符"这个关键字有关的贴子,基本上都是在查找最后一个盘符,或下一个可用盘符.那么,在我的机子上,这是行不通的,因为最后一个盘符已经是Z了.
而我想做到的是,查找系统有多少还可以用于映射网络驱动器用的盘符,然后一一按条件赋值给变量.
不知有没有高手可以帮我一下.
谢谢大家了.
|
|
2008-9-16 19:35 |
|
|
hackate
中级用户
积分 228
发帖 125
注册 2008-8-25
状态 离线
|
『第
2 楼』:
for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype=3" get name') do @echo %%i
可以用WMIC获取你的计算机现有使用的盘符,然后捏?通过FOR循环来筛选未使用的盘符
|
|
2008-9-16 20:06 |
|
|
AppleWolf
初级用户
积分 110
发帖 41
注册 2007-3-31
状态 离线
|
『第
3 楼』:
Quote: | Originally posted by hackate at 2008-9-16 08:06 PM:
for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype=3" get name') do @echo %%i
可以用WMIC获取你的计算机现有使用的盘符,然后捏?通过FOR循环来筛选未使用的盘符 |
|
谢谢你的思路,尝试过,呵呵.
|
|
2008-9-16 20:10 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
4 楼』:
尝试过这个没?
@echo off
set str=c d e f g h i j k l m n o p q r s t u v w x y z
for /f "tokens=2 delims=:=" %%a in ('wmic logicaldisk get DeviceID /value') do (
call set str=%%str:%%a=%%
)
echo %str%
|
|
|
2008-9-16 21:50 |
|
|
shqf
初级用户
积分 35
发帖 18
注册 2008-8-10
状态 离线
|
『第
5 楼』:
@echo off&setlocal enabledelayedexpansion
set var=c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z:
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set "var=!var:%%i=!"
)
for %%i in (%var%) do (
set /a n+=1
set FreeDrive!n!=%%i
)
for /l %%i in (1,1,%n%) do echo !FreeDrive%%i!
pause [ Last edited by shqf on 2008-9-16 at 10:40 PM ]
|
|
2008-9-16 22:34 |
|
|
AppleWolf
初级用户
积分 110
发帖 41
注册 2007-3-31
状态 离线
|
『第
6 楼』:
Quote: | Originally posted by shqf at 2008-9-16 10:34 PM:
[code]
@echo off&setlocal enabledelayedexpansion
set var=c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: x: y: z:
for /f "delims=\" %%i in ('fsutil fsinfo drives^|fi ... |
|
谢谢你的回复,不过有点小小的问题,输出时,把C:和Z:也输出了。
再次感谢你。
|
|
2008-9-17 01:41 |
|
|
AppleWolf
初级用户
积分 110
发帖 41
注册 2007-3-31
状态 离线
|
『第
7 楼』:
Quote: | Originally posted by HAT at 2008-9-16 09:50 PM:
尝试过这个没?
[code]@echo off
set str=c d e f g h i j k l m n o p q r s t u v w x y z
for /f "tokens=2 delims=:=" %%a in ('wmic logicaldisk get DeviceID /value') do (
call s ... |
|
不愧是高手,果然利害,全符合要求!
在此感谢你对我的点拔!
谢谢!!
|
|
2008-9-17 01:42 |
|