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

[系统相关] diskpart在批处理中不能自动执行下一条命令,求解决办法?

以下命令在存为.bat文件,不能执行下一条命令!
但是,手工打开CMD命令窗口,然后粘贴命令 就可以全部执行完成!
坛子里的贴子我搜过,没有!


请尽量保持这我这个格式,以便我自已能看的懂!谢谢!
  1. cls
  2. @echo off
  3. @echo.
  4. @echo.
  5. @echo.
  6. @echo.
  7. @echo                   开始删除所有盘符
  8. @echo.
  9. @echo.
  10. @echo.
  11. @echo.
  12. @echo.
  13. @echo.
  14. @echo.
  15. @echo                   按任意开始。。。。。
  16. @pause >nul 2>nul
  17. @rem 磁盘0   [系统盘]-----删除第2、3、4分区盘符(1分区为系统、保留第5分区)
  18. diskpart.exe
  19. select disk 0
  20. select partition 2
  21. remove all
  22. select disk 0
  23. select partition 3
  24. remove all
  25. select disk 0
  26. select partition 4
  27. remove all
  28. @rem 磁盘1  [电影备份]-----删除第1、2分区盘符(保留第3分区)
  29. select disk 1
  30. select partition 1
  31. remove all
  32. select disk 2
  33. select partition 2
  34. remove all
  35. @rem 磁盘2  [普通游戏]-----删除第1、2分区盘符(全部分配)
  36. select disk 2
  37. select partition 1
  38. remove all
  39. select disk 2
  40. select partition 2
  41. remove all
  42. @rem 磁盘3   [SSD硬盘]   -删除第1、3、4分区盘符(全部分配)
  43. select disk 3
  44. select partition 1
  45. remove all
  46. select disk 3
  47. select partition 3
  48. remove all
  49. select disk 3
  50. select partition 4
  51. remove all
  52. @rem 磁盘4   [回写盘]-----删除第1分区盘符
  53. select disk 4
  54. select partition 1
  55. remove all
  56. select disk 4
  57. select partition 2
  58. remove all
  59. select disk 4
  60. select partition 3
  61. remove all
  62. select disk 4
  63. select partition 4
  64. remove all
  65. cls
  66. @echo.
  67. @echo.
  68. @echo.
  69. @echo.
  70. @echo                   删除盘符完成 !
  71. @echo.
  72. @echo.
  73. @echo.
  74. @echo.
  75. @echo.
  76. @echo.
  77. @echo.
  78. @echo                   按任意  开始修改盘符
  79. @pause >nul 2>nul
  80. @rem 磁盘0   [系统盘]-----D盘=分区2,E盘=分区3(其它分区不分配)
  81. diskpart.exe
  82. select disk 0
  83. select partition 2
  84. assign letter=D
  85. select disk 0
  86. select partition 3
  87. assign letter=E
  88. @rem 磁盘1  [电影备份]-----G盘=分区1(其它分区不分配)
  89. select disk 1
  90. select partition 1
  91. assign letter=G
  92. @rem 磁盘2  [普通游戏]-----J盘=分区2(其它分区不分配)
  93. select disk 2
  94. select partition 2
  95. assign letter=J
  96. @rem 磁盘3   [SSD硬盘]   I盘=分区1,R盘=分区3,K盘=分区4(第二分区不分配)
  97. select disk 3
  98. select partition 1
  99. assign letter=I
  100. select disk 3
  101. select partition 3
  102. assign letter=R
  103. select disk 3
  104. select partition K
  105. assign letter=
  106. @rem 磁盘4   [回写盘]-----H盘=分区1
  107. select disk 4
  108. select partition 1
  109. assign letter=H
  110. cls
  111. @echo.
  112. @echo.
  113. @echo.
  114. @echo.
  115. @echo                   全部完成!
  116. @echo.
  117. @echo.
  118. @echo.
  119. @echo.
  120. @echo.
  121. @echo.
  122. @echo.
  123. @pause >nul 2>nul
复制代码

这是我的硬盘分区!

TOP

放了@echo off就不用再每个命令前放@了!
Diskpart是跳出一个窗口出来的
这样子应该不可以的啦

还有
有谁敢拿自己的硬盘测试啊?

TOP

管道                   

TOP

放了@echo off就不用再每个命令前放@了!
Diskpart是跳出一个窗口出来的
这样子应该不可以的啦

还有
...
garyng 发表于 2011-10-23 15:32



哦,呵呵,谢谢指点,我是新手,很多东西都不了解!

我是在VM中测试的!我想只要能成功改一个分区,其它的想必也不成问题了!

TOP

管道                   
powerbat 发表于 2011-10-23 15:50



兄弟,能否给个例子啊,批处理我连问都没入,官道对我来说更是天书啊!

TOP

回复 6# wrz99
可以把关键部分改成这样试试:
  1. echo,(
  2. select disk 0
  3. select partition 2
  4. assign letter=D
  5. select disk 0
  6. select partition 3
  7. assign letter=E
  8. select disk 1
  9. select partition 1
  10. assign letter=G
  11. select disk 2
  12. select partition 2
  13. assign letter=J
  14. select disk 3
  15. select partition 1
  16. assign letter=I
  17. select disk 3
  18. select partition 3
  19. assign letter=R
  20. select disk 3
  21. select partition K
  22. assign letter=
  23. select disk 4
  24. select partition 1
  25. assign letter=H
  26. )|diskpart.exe
复制代码
这就是管道,把前面的内容喂给diskpart吃,没有亲自测试,所以不知道有用不。
看得多说得多,远比不上写得多。

TOP

回复  wrz99
可以把关键部分改成这样试试:这就是管道,把前面的内容喂给diskpart吃,没有亲自测试,所以 ...
weichenxiehou 发表于 2011-10-23 17:08



    已测试,不行!

TOP

回复 8# wrz99
那试试这个呢,不行的话我就没辙了:
  1. echo,(
  2. select disk 0
  3. select partition 2
  4. assign letter=D
  5. select disk 0
  6. select partition 3
  7. assign letter=E
  8. select disk 1
  9. select partition 1
  10. assign letter=G
  11. select disk 2
  12. select partition 2
  13. assign letter=J
  14. select disk 3
  15. select partition 1
  16. assign letter=I
  17. select disk 3
  18. select partition 3
  19. assign letter=R
  20. select disk 3
  21. select partition K
  22. assign letter=
  23. select disk 4
  24. select partition 1
  25. assign letter=H
  26. )>temp.txt
  27. diskpart.exe<temp.txt
  28. del temp.txt
复制代码
看得多说得多,远比不上写得多。

TOP

回复 8# wrz99


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

TOP

回复 7# weichenxiehou

echo可以这么用吗?不要想当然

TOP

谢谢管理员,及weichenxiehou

可惜 还是不成功!

TOP

回复 12# wrz99
没你的实验环境,以前写过一个WIN7下的虚拟磁盘挂载的VBS脚本,用到了diskpart...
将下面的脚本存为*.VBS,试试,
  1. On Error Resume Next
  2. Set WSObject = CreateObject("WScript.Shell")
  3. Set RunExec = WSObject.Exec("diskpart")
  4. 'RunExec.StdIn.WriteLine "select vdisk file=" & strVFilePath & ""
  5. 'RunExec.StdIn.WriteLine "detach vdisk"
  6. RunExec.StdIn.WriteLine "select disk 0"
  7. RunExec.StdIn.WriteLine "select partition 2"
  8. RunExec.StdIn.WriteLine "assign letter=D"
  9. RunExec.StdIn.WriteLine "select disk 0"
  10. RunExec.StdIn.WriteLine "select partition 3"
  11. RunExec.StdIn.WriteLine "assign letter=E"
  12. RunExec.StdIn.WriteLine "select disk 1"
  13. RunExec.StdIn.WriteLine "select partition 1"
  14. RunExec.StdIn.WriteLine "assign letter=G"
  15. RunExec.StdIn.WriteLine "select disk 2"
  16. RunExec.StdIn.WriteLine "select partition 2"
  17. RunExec.StdIn.WriteLine "assign letter=J"
  18. RunExec.StdIn.WriteLine "select disk 3"
  19. RunExec.StdIn.WriteLine "select partition 1"
  20. RunExec.StdIn.WriteLine "assign letter=I"
  21. RunExec.StdIn.WriteLine "select disk 3"
  22. RunExec.StdIn.WriteLine "select partition 3"
  23. RunExec.StdIn.WriteLine "assign letter=R"
  24. RunExec.StdIn.WriteLine "select disk 3"
  25. RunExec.StdIn.WriteLine "select partition K"
  26. RunExec.StdIn.WriteLine "assign letter="
  27. RunExec.StdIn.WriteLine "select disk 4"
  28. RunExec.StdIn.WriteLine "select partition 1"
  29. RunExec.StdIn.WriteLine "assign letter=H"
复制代码

TOP

回复  wrz99
没你的实验环境,以前写过一个WIN7下的虚拟磁盘挂载的VBS脚本,用到了diskpart...
将下面的 ...
lxzzr 发表于 2011-10-24 12:46



    谢谢!但还是不成功!

TOP

本帖最后由 andyrave 于 2011-10-25 13:13 编辑

Microsoft DiskPart 语法:
        diskpart [/s <script>] [/?]

        /s <script> - 使用一个 DiskPart 脚本。
        /?          - 显示这个帮助屏幕。

把代码保存为脚本 例如 remove.txt

运行diskpart /s remove.txt

依次类推 保存脚本 并写出 批处理  diskpart /s 脚本
  1. select disk 0
  2. select partition 2
  3. remove all
复制代码
测试环境:WINDOWS 8 64Bit
如系统环境不同,请自行修改 :)

TOP

返回列表