需要检查磁盘是否是本地硬盘,因操作系统有英文和中文之分,所以需要用到find的或查询条件,以下批处理为什么不灵呀!急急急!!!
for /f "tokens=1 delims= " %%f in ('fsutil fsinfo drivetype c:^|find "Fixed"||find "固定"') do (echo %%f)
请高手解决一个批处理find查询条件的问题:
答案:3 悬赏:0 手机版
解决时间 2021-03-15 19:03
- 提问者网友:星軌
- 2021-03-15 15:14
最佳答案
- 五星知识达人网友:话散在刀尖上
- 2021-03-15 16:25
'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是不认识的(您是不是想表达“或”?批处理的或逻辑只能变相的表达出来,没有专用符号的),所以执行肯定不会成功的。
您这句写的有问题。
现在这句相当于在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是不认识的(您是不是想表达“或”?批处理的或逻辑只能变相的表达出来,没有专用符号的),所以执行肯定不会成功的。
全部回答
- 1楼网友:孤独的牧羊人
- 2021-03-15 18:47
以win7系统单网卡为例。
@echo off
ip=192.168.11.100
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr ipv4') do set s=%%i
set s=%s: =%
if "%s%" neq "%ip%" (echo 错误)&goto cuowu
下一条命令
。。。。
。。。。
goto :eof
:cuowu
- 2楼网友:迷人又混蛋
- 2021-03-15 17:07
@echo off
for /f "tokens=1 delims= " %%f in ('fsutil fsinfo drivetype c:^|find "Fixed"^|^|fsutil fsinfo drivetype c:^|find "固定"') do (echo %%f)
pause
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯