bat脚本实现摆列当地磁盘,并从A-Z中找出一个可用磁盘映射 ...

打印 上一主题 下一主题

主题 841|帖子 841|积分 2523

如题:如果当地计算机有A(软盘)、B(软盘)、C(物理硬盘)、D(光驱,未放光盘),四个盘,则能找出 A:E:、B:F:、C:G:、D:H:四种映射方法,依此类推。
代码通过bat脚本实现
  1. @Echo Off
  2. setlocal enabledelayedexpansion
  3. SET TEMP_DIR=temp.clone
  4. SET RCOPY_LOG=C:\%TEMP_DIR%\rcopy.log
  5. SET RCOPY_XP_PATH=C:\%TEMP_DIR%\diskXP.txt
  6. SET SRC_TXT=C:\%TEMP_DIR%\disk.txt
  7. ::disk.txt had writed A:\r\nB:\r\nC:\r\nD:
  8. set /A count=0
  9. set volumeInfo[%count%]="0"
  10. set volumeList[%count%]="0"
  11. :: List of all possible drive letters
  12. set "letters=C D E F G H I J K L M N O P Q R S T U V W X Y Z"
  13. :: Initialize the usedDrives variable
  14. set "usedDrives="
  15. :: Get all current drives and skip the header
  16. for /f "skip=1 tokens=1" %%a in ('wmic logicaldisk get caption') do (
  17.     set "usedDrives=!usedDrives! %%~a"
  18. )
  19. :: Check each letter and echo if it's not in use
  20. for %%b in (%letters%) do (
  21.     set "found=0"
  22.     for %%c in (!usedDrives!) do (
  23.         if /i "%%b:"=="%%c" set "found=1"
  24.     )
  25.     if !found! equ 0 (
  26.                 echo %%b
  27.         echo %%b >> %RCOPY_LOG%
  28.                 set /A count+=1
  29.                 set volumeInfo[!count!]=%%b:
  30.     )
  31. )
  32. set /A count=0
  33. for /f "tokens=1,2 delims=" %%s in (%SRC_TXT%) do (
  34.         echo %%s >>%RCOPY_LOG%
  35.         set /A count+=1
  36.         set volumeList[!count!]=%%s
  37. )
  38. for /l %%i in (1,1,!count!) do (
  39.         echo !volumeList[%%i]!!volumeInfo[%%i]!>>%RCOPY_XP_PATH%
  40. )
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

金牌会员
这个人很懒什么都没写!

标签云

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