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

回复 12楼、13楼 的帖子

见15楼回复第三点

关于代码风格的问题,欢迎你参与讨论:批处理bat代码是越短越好吗?
http://bbs.bathome.net/viewthread.php?tid=4026
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 14楼 的帖子

有代码就拿出来跟大家分享的精神是非常好的,但是请尽量不要把跟主题不相关的代码也一股脑的贴出,如果认为有必要,可以单独发帖。实际上,关于最后分区盘符的问题,本论坛早已有相关帖子讨论过,建议您搜索一下并到那些帖子中继续讨论。我们这个帖子还是以讨论可移动盘符为主吧。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

for /f %%h in ('fsutil fsinfo drivetype %%a:^|findstr "Removable.* 可移动"') do (
1,楼主由以上的代码 于 2009-4-26 13:39 重新编辑成以下 代码,现在可以显示,但两个U盘中,显示的是后一个,“m:”
      for /f %%h in ('fsutil fsinfo drivetype %%a:^|findstr "Removable 可移动"') do (
2,6楼的第一个代码显示的是“l:”和“m:”。第二个代码显示的是“l: - 可移动驱动器”和“m: - 可移动驱动器”。
     我不懂,我认为6楼的代码扣了提意,所以贴了个图来,请见谅。
3、本帖主要是为了获取可移动盘符,以便下面自动实现一些针对可移动磁盘的文件/文件夹操作,
     设置U盘背景(dosz整理,只能用于第一个移动盘)
  1. @echo off
  2. title 设置U盘背景(dosz整理,只能用于第一个移动盘)
  3. :start
  4. cls
  5. echo 请插入U盘...
  6. ping -n 4 127.1>nul
  7. for %%i in (c:,d:,e:,f:,g:,h:,i:,j:,k:,l:) do fsutil fsinfo drivetype %%i | find "可移动">nul && echo %%i>>dosz.txt
  8. if not exist dosz.txt goto dd
  9. for /f "tokens=*" %%a in (dosz.txt) do set upanfu=%%a
  10. :shezhi
  11. cls
  12. echo.
  13. set tupian=
  14. set /p tupian=输入要设置为背景的图片路径并回车 (建议直接将图片拖拽到本窗口):
  15. if exist %tupian% goto d
  16. echo.
  17. echo 图片不存在...或输入有误....
  18. echo.
  19. echo 建议直接将图片拖拽到本窗口...
  20. echo.
  21. echo 任意键返回....
  22. pause>nul
  23. goto shezhi
  24. :d
  25. if exist %upanfu%\1.jpg attrib -s -h -r -a %upanfu%\1.jpg
  26. copy %tupian% %upanfu%\1.jpg>nul
  27. if exist %upanfu%\desktop.ini attrib -s -h -r -a %upanfu%\desktop.ini
  28. echo [ExtShellFolderViews]>%upanfu%\desktop.ini
  29. echo [{BE098140-A513-11D0-A3A4-00C04FD706EC}]>>%upanfu%\desktop.ini
  30. echo IconArea_Image=1.jpg>>%upanfu%\desktop.ini
  31. attrib +h %upanfu%\desktop.ini
  32. attrib +h %upanfu%\1.jpg
  33. del dosz.txt /q
  34. echo.
  35. explorer  %upanfu%\
  36. echo.
  37. pause>nul
  38. exit
  39. :dd
  40. echo.
  41. echo 检测不到U盘..任意键返回....
  42. pause>nul
  43. goto start
复制代码

[ 本帖最后由 dosz 于 2009-4-26 17:00 编辑 ]
dosz.ys168.com
http://bbs.deepin.org/?a=dosz

TOP

谢谢楼主指点,
有代码就拿出来跟大家分享的精神是非常好的,但是请尽量不要把跟主题不相关的代码也一股脑的贴出,如果认为有必要,可以单独发帖。

再问问楼主,我在这里为什么不能发新贴。
谢谢!

[ 本帖最后由 dosz 于 2009-4-26 17:07 编辑 ]
dosz.ys168.com
http://bbs.deepin.org/?a=dosz

TOP

回复 18楼 的帖子

1、顶楼应经说清楚,本帖不讨论多个U盘的情况,如果有需要,稍加修改即可兼容;

2、顶楼业已说明,我们要把盘符保存到一个变量中,而不是仅仅显示一下(没啥用处);

3、我们写代码还是少用临时文件为好,以你这个代码为例,如果用户当前目录下有一个私人文件叫做dosz.txt,里面存放了一些重要的资料,而且有可能其它程序会调用此文件。一旦运行这个批处理,后果将可能相当严重。你也许会说“咱可以把这个临时文件生成到%temp%目录下啊”,首先,某些电脑根本没有%temp%这个系统变量,其次,某些杀软会监控%temp%中新文件的生成并报警(取决于杀软的设置)。总之,能不用临时文件就别用。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2009-4-26 17:15 发表
1、顶楼应经说清楚,本帖不讨论多个U盘的情况,如果有需要,稍加修改即可兼容;

2、顶楼业已说明,我们要把盘符保存到一个变量中,而不是仅仅显示一下(没啥用处);

3、我们写代码还是少用临时文件为好,以你 ...


非常有道理。
dosz.ys168.com
http://bbs.deepin.org/?a=dosz

TOP

谢谢,收下了,正在找这个呢..

TOP

请教楼主,当我的U盘量产成HDD格式后,就是本地磁盘格式后如何识别呢,楼上所提供的方案均无法识别.
谢谢啦.
原帖地址:http://bbs.bathome.net/viewthrea ... &extra=page%3D1

TOP

今天看到这问题
小弟以前也想过
我的想法很简单~~
一般的硬碟机理,一定会有 System Volume Information 文件夹
因此只要侦测,磁盘里有没有 System Volume Information
就能判断为硬碟还是随身碟
  1. @ECHO OFF
  2. for %%i 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 %%i: (
  3. if not exist "%%i:\System Volume Information" (echo %%i  is USB)))
  4. PAUSE
复制代码


PS 随身碟 = U盘 (台湾用语)

[ 本帖最后由 strong12345 于 2009-7-1 12:51 编辑 ]

TOP

发一个很久以前写的代码:
  1. @echo off
  2. ::foxjl@bbs.bathome.net
  3. setlocal enabledelayedexpansion
  4. for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
  5. set var=%%i
  6. for /f "delims=" %%h in ('fsutil fsinfo drivetype !var:~-2!') do (
  7. echo %%h | find "移动">nul && echo %%i
  8. )
  9. )
  10. pause
复制代码

TOP

个人认为三个方案都有局限,fsutil和wmic是xp系统的且还要管理员权限,vbscript2000以下用不了,要用还得装组件。

TOP

回复 2楼 的帖子

用第一个批,感觉遍历比较管用。。。
多u盘的问题可以用eol忽略掉,进行再次遍历查询,效率有点低就是了

[ 本帖最后由 dailisishen 于 2009-11-10 21:41 编辑 ]

TOP

回复 26楼 的帖子

你有什么好的建议呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

很强大。。。很好……

TOP

今天要用,搜到了这个帖子,很好很好
看了大家的讨论也收获颇丰

楼主的意思很合我的心意,要的就是把盘符赋值到一个变量中供后续调用,只是在屏幕上显示一下的话,没有意义
只不过关于U盘/移动硬盘,被系统识别为“本地硬盘“的情况,似乎确实不好处理

TOP

返回列表