返回列表 发帖
回复 16# pcl_test


    这个只是获取一个盘符的批处理吗?那么请改一下获取全部的盘符,谢谢!横排和竖排分别显示。
但是这个我在xp下面运行是可以获取全部盘符的呀。

TOP

回复 17# freesoft00
10楼就是
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1*" %%a in ('fsutil fsinfo drives ^|find ":\"') do (
echo %%b
for %%i in (%%b) do set a=%%i & echo format !a:~,2!
)
pauseCOPY
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1*" %%a in ('fsutil fsinfo drives ^|find ":\"') do (
for %%i in (%%b) do set a=%%i & set "s=!s!!a:~,2! " & echo !a:~,2!
)
echo !s:~,-1!
pauseCOPY

TOP

fsutil fsinfo drives 在xp和win7显示结果不一样,以前有过很多次的讨论

TOP

横排
@echo off & setlocal enabledelayedexpansion
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
        if exist %%a:\ (
                fsutil fsinfo drivetype %%a:|findstr /i "固定 Fixed" && set "v=!v! %%a:"
        )
)>nul
if defined v echo,%v:~1%
pauseCOPY
竖排
@echo off
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
        if exist %%a:\ (
                fsutil fsinfo drivetype %%a:|findstr /i "固定 Fixed">nul && echo,%%a:
        )
)
pauseCOPY

TOP

回复 20# apang


    哦,是这样呀,我主要是不想用c-z这样的形式都搜索一遍。而是'fsutil fsinfo drives 后迭代一下。c-z都搜索,在一些有读卡器的电脑,会出现驱动器没有准备好或者驱动器空的类似的错误提示。

TOP

回复 18# pcl_test
不是,你看我后面还用了一个
fsutil fsinfo drivetype
命令过滤盘符的类型,比如我想类出来U盘,或者本地硬盘,或者光驱,都可以过滤出来,而不是前面的命令所有盘符都出来了。

TOP

回复 22# freesoft00
@echo off
setlocal enabledelayedexpansion
ver | find "5.1." >nul && goto aa ||goto bb
:aa
echo xp代码
pause & exit
:bb
echo Win7/Win8/win10代码
pause & exitCOPY

TOP

回复 21# freesoft00


横排
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%a in ('fsutil fsinfo drives^|find /v ""') do (
        for %%b in (%%a) do (
                set "Drv=%%b"
                fsutil fsinfo drivetype !Drv:\=!|findstr /i "固定 Fixed">nul && set "v=!v! !Drv:\=!"
        )
)
if defined v echo,%v:~1%
pauseCOPY
竖排
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%a in ('fsutil fsinfo drives^|find /v ""') do (
        for %%b in (%%a) do (
                set "Drv=%%b"
                fsutil fsinfo drivetype !Drv:\=!|findstr /i "固定 Fixed">nul && echo,!Drv:\=!
        )
)
pauseCOPY
1

评分人数

TOP

回复 23# pcl_test
我也想到了这个,但是我并不知道如何在win7下面让代码正确

TOP

回复 24# apang


    这个在win7下面还是不行,还是显示一个盘符。包括上面那个c-z盘符那个也一样。

TOP

本帖最后由 freesoft00 于 2015-3-23 12:07 编辑
setlocal enabledelayedexpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
echo !drive!>>77.txt
fsutil fsinfo drivetype !drive!|find "驱动器">nul&& echo !drive!
)
pauseCOPY
我把第一步输出到77.txt了,你们看一下结果:
A:COPY
:next
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%a in ('fsutil fsinfo drives^|find /v ""') do (
        for %%b in (%%a) do (
                echo %%b>>55.txt
                fsutil fsinfo drivetype !Drv:\=!|findstr /i "固定 Fixed">nul && echo,!Drv:\=!
        )
)
pauseCOPY
我把第一步的结果输出到55.txt,其内容是:
驱动器:
A:\
C:\
D:\COPY
这个最终的运行结果是:
C:
请按任意键继续. . .COPY

TOP

55.txt文本在xp系统中没有看到和win7中有什么区别呀
驱动器:
C:\
D:\
E:\
F:\COPY
xp系统中的结果

TOP

77.txt在xp中的结果和win7系统中不同:
C:
D:
E:
F:COPY
xp中的结果

TOP

回复 25# freesoft00
win7的
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1*" %%a in ('fsutil fsinfo drives ^|find ":\"') do (
set s=
for %%i in (%%b) do (
set drive=%%i
set drive=!drive:~,-1!
fsutil fsinfo drivetype !drive! | find "移动">nul && (echo !drive! & set "s=!s!!drive! ")
)
echo !s:~,-1!
)
pauseCOPY

TOP

回复 30# pcl_test


    ok,这次这个可以在win7下正常显示了。

TOP

返回列表