找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: freesoft00

[文本处理] 【已解决】批处理如何把文本结果竖排变横排?

[复制链接]
 楼主| 发表于 2015-3-22 19:50:14 | 显示全部楼层
回复 16# pcl_test


    这个只是获取一个盘符的批处理吗?那么请改一下获取全部的盘符,谢谢!横排和竖排分别显示。
但是这个我在xp下面运行是可以获取全部盘符的呀。
发表于 2015-3-22 22:09:17 | 显示全部楼层
回复 17# freesoft00
10楼就是
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1*" %%a in ('fsutil fsinfo drives ^|find ":"') do (
  4. echo %%b
  5. for %%i in (%%b) do set a=%%i & echo format !a:~,2!
  6. )
  7. pause
复制代码
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1*" %%a in ('fsutil fsinfo drives ^|find ":"') do (
  4. for %%i in (%%b) do set a=%%i & set "s=!s!!a:~,2! " & echo !a:~,2!
  5. )
  6. echo !s:~,-1!
  7. pause
复制代码
发表于 2015-3-22 22:26:09 | 显示全部楼层
fsutil fsinfo drives 在xp和win7显示结果不一样,以前有过很多次的讨论
发表于 2015-3-22 22:30:41 | 显示全部楼层
横排
  1. @echo off & setlocal enabledelayedexpansion
  2. 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 (
  3.         if exist %%a:\ (
  4.                 fsutil fsinfo drivetype %%a:|findstr /i "固定 Fixed" && set "v=!v! %%a:"
  5.         )
  6. )>nul
  7. if defined v echo,%v:~1%
  8. pause
复制代码
竖排
  1. @echo off
  2. 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 (
  3.         if exist %%a:\ (
  4.                 fsutil fsinfo drivetype %%a:|findstr /i "固定 Fixed">nul && echo,%%a:
  5.         )
  6. )
  7. pause
复制代码
 楼主| 发表于 2015-3-23 06:13:41 | 显示全部楼层
回复 20# apang


    哦,是这样呀,我主要是不想用c-z这样的形式都搜索一遍。而是'fsutil fsinfo drives 后迭代一下。c-z都搜索,在一些有读卡器的电脑,会出现驱动器没有准备好或者驱动器空的类似的错误提示。
 楼主| 发表于 2015-3-23 06:16:27 | 显示全部楼层
回复 18# pcl_test
不是,你看我后面还用了一个
fsutil fsinfo drivetype
命令过滤盘符的类型,比如我想类出来U盘,或者本地硬盘,或者光驱,都可以过滤出来,而不是前面的命令所有盘符都出来了。
发表于 2015-3-23 07:26:24 | 显示全部楼层
回复 22# freesoft00
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. ver | find "5.1." >nul && goto aa ||goto bb
  4. :aa
  5. echo xp代码
  6. pause & exit
  7. :bb
  8. echo Win7/Win8/win10代码
  9. pause & exit
复制代码
发表于 2015-3-23 09:10:11 | 显示全部楼层
回复 21# freesoft00


横排
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('fsutil fsinfo drives^|find /v ""') do (
  3.         for %%b in (%%a) do (
  4.                 set "Drv=%%b"
  5.                 fsutil fsinfo drivetype !Drv:\=!|findstr /i "固定 Fixed">nul && set "v=!v! !Drv:\=!"
  6.         )
  7. )
  8. if defined v echo,%v:~1%
  9. pause
复制代码
竖排
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('fsutil fsinfo drives^|find /v ""') do (
  3.         for %%b in (%%a) do (
  4.                 set "Drv=%%b"
  5.                 fsutil fsinfo drivetype !Drv:\=!|findstr /i "固定 Fixed">nul && echo,!Drv:\=!
  6.         )
  7. )
  8. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-3-23 11:58:06 | 显示全部楼层
回复 23# pcl_test
我也想到了这个,但是我并不知道如何在win7下面让代码正确
 楼主| 发表于 2015-3-23 11:58:55 | 显示全部楼层
回复 24# apang


    这个在win7下面还是不行,还是显示一个盘符。包括上面那个c-z盘符那个也一样。
 楼主| 发表于 2015-3-23 12:01:39 | 显示全部楼层
本帖最后由 freesoft00 于 2015-3-23 12:07 编辑
  1. setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('fsutil fsinfo drives^|find /v ""') do (
  3. set var=%%i
  4. set drive=!var:~-2!
  5. echo !drive!>>77.txt
  6. fsutil fsinfo drivetype !drive!|find "驱动器">nul&& echo !drive!

  7. )
  8. pause
复制代码
我把第一步输出到77.txt了,你们看一下结果:
  1. A:
复制代码
  1. :next
  2. @echo off & setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('fsutil fsinfo drives^|find /v ""') do (
  4.         for %%b in (%%a) do (
  5.                 echo %%b>>55.txt
  6.                 fsutil fsinfo drivetype !Drv:\=!|findstr /i "固定 Fixed">nul && echo,!Drv:\=!
  7.         )
  8. )
  9. pause
复制代码
我把第一步的结果输出到55.txt,其内容是:
  1. 驱动器:
  2. A:\
  3. C:\
  4. D:\
复制代码
这个最终的运行结果是:
  1. C:
  2. 请按任意键继续. . .
复制代码
 楼主| 发表于 2015-3-23 12:05:00 | 显示全部楼层
55.txt文本在xp系统中没有看到和win7中有什么区别呀
  1. 驱动器:
  2. C:\
  3. D:\
  4. E:\
  5. F:\
复制代码
xp系统中的结果
 楼主| 发表于 2015-3-23 12:06:20 | 显示全部楼层
77.txt在xp中的结果和win7系统中不同:
  1. C:
  2. D:
  3. E:
  4. F:
复制代码
xp中的结果
发表于 2015-3-23 12:19:12 | 显示全部楼层
回复 25# freesoft00
win7的
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1*" %%a in ('fsutil fsinfo drives ^|find ":"') do (
  4. set s=
  5. for %%i in (%%b) do (
  6. set drive=%%i
  7. set drive=!drive:~,-1!
  8. fsutil fsinfo drivetype !drive! | find "移动">nul && (echo !drive! & set "s=!s!!drive! ")
  9. )
  10. echo !s:~,-1!
  11. )
  12. pause
复制代码
 楼主| 发表于 2015-3-23 12:35:01 | 显示全部楼层
回复 30# pcl_test


    ok,这次这个可以在win7下正常显示了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 12:53 , Processed in 0.021078 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表