请高手解决一个批处理find查询条件的问题:

需要检查磁盘是否是本地硬盘,因操作系统有英文和中文之分,所以需要用到find的或查询条件,以下批处理为什么不灵呀!急急急!!!for/f"tokens=1delims="... 需要检查磁盘是否是本地硬盘,因操作系统有英文和中文之分,所以需要用到find的或查询条件,以下批处理为什么不灵呀!急急急!!!
for /f "tokens=1 delims= " %%f in ('fsutil fsinfo drivetype c:^|find "Fixed"||find "固定"') do (echo %%f)
展开
 我来答
朴素且可爱灬小喵1
2013-11-29 · TA获得超过2903个赞
知道大有可为答主
回答量:1713
采纳率:89%
帮助的人:555万
展开全部
'fsutil fsinfo drivetype c:^|find "Fixed"||find "固定"'

您这句写的有问题。
现在这句相当于在fsutil的结果中找到一行,既有“Fixed”字符串又有“固定”字符串的,这是不可能的。实际上,中文系统应当查“固定”,英文系统应查“Fixed”。您可以这样写:
@echo off
@ver|find "版本"
@if %errorlevel%==0 (
@goto CHS
) else (
@goto ENG)
:CHS
@for /f "tokens=1 delims= " %%f in ('fsutil fsinfo drivetype c:^|find "固定"') do (echo %%f)
@goto X

:ENG
@for /f "tokens=1 delims= " %%f in ('fsutil fsinfo drivetype c:^|find "Fixed"') do (echo %%f)
@goto X

:X
另外您原括号命令里后面的||,cmd是不认识的(您是不是想表达“或”?批处理的或逻辑只能变相的表达出来,没有专用符号的),所以执行肯定不会成功的。
jd08139
2013-11-29 · TA获得超过3736个赞
知道大有可为答主
回答量:2174
采纳率:66%
帮助的人:2940万
展开全部
for /f "tokens=1 delims= " %%f in ('fsutil fsinfo drivetype c:^|findstr /r "Fixed 固定"') do (echo %%f)

没那么复杂.用findstr 一句就可以了.

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lifei259
2013-11-29 · TA获得超过1061个赞
知道大有可为答主
回答量:2341
采纳率:48%
帮助的人:769万
展开全部
@echo off
for /f "tokens=1 delims= " %%f in ('fsutil fsinfo drivetype c:^|find "Fixed"^|^|fsutil fsinfo drivetype c:^|find "固定"') do (echo %%f)
pause
追问
请问以下的这个批处理如何修改?因为“字节总数”关键字重复,能否完整匹配查询?谢谢!
for /f "tokens=6* delims= " %%f in ('fsutil volume diskfree c:^|find "total # of bytes" /i^|^|fsutil fsinfo drivetype c:^|find "字节总数"') do (echo %%f)
追答
for /f "tokens=6* delims= " %%f in ('fsutil volume diskfree c:^|find "total # of bytes" /i^|^|fsutil fsinfo drivetype c:^|findstr /b "字节总数"') do (echo %%f)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式