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

[系统相关] Win10批处理如何自动格式化一个指定分区?

[复制链接]
发表于 2024-3-13 05:33:52 | 显示全部楼层 |阅读模式
  1. ::获取管理员权限
  2. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

  3. ::格式化O盘分区为ntfs
  4. format O: /v:GSRAMDisk /fs:ntfs /q /u
  5. pause
复制代码
以上为脚本。这是个内存虚拟盘,因虚拟软件不成熟,开机后老是搞成fat32格式,实际使用有很多限制。但优点是软件免费,其它方面稳定运行多年,现想开机即格式化或转换为ntfs格式。

分区卷标名:GSRAMDisk

1-执行脚本的第一个对话框内容是:
C:\Windows\system32>format O: /v:GSRAMDisk /fs:ntfs /q /u
文件系统的类型是 FAT32。
新的文件系统是 NTFS。
输入驱动器 O: 的当前卷标


2-第二个对话内容是:
C:\Windows\system32>format O: /v:GSRAMDisk /fs:ntfs /q /u
文件系统的类型是 FAT32。
新的文件系统是 NTFS。
输入驱动器 O: 的当前卷标GSRAMDisk

警告,非移动磁盘驱动器 O:
上的所有数据将会丢失!
是否继续进行格式化(Y/N)?y



请问如何全自动化?自动设置卷标,留空也行。自动确认格式化
发表于 2024-3-13 08:22:07 | 显示全部楼层
convert o: /fs:ntfs /x
 楼主| 发表于 2024-3-13 19:00:43 | 显示全部楼层
回复 2# semiuel




亲,这个转换代码试过。
运行结果是:
C:\Windows\system32>convert O: /fs:ntfs /x
文件系统的类型是 FAT32。
输入驱动器 O: 的当前卷标
 楼主| 发表于 2024-3-13 19:02:12 | 显示全部楼层
能快速格式化,是最好的。因为这个临时盘里,都是临时文件,非重要。
发表于 2024-3-13 19:26:15 | 显示全部楼层
convert 转换为 NTFS 是可以的,因为你一开机就转换,空盘转换很快的

要不这样试试
echo Y|format O: /v:GSRAMDisk /fs:ntfs /q /u
 楼主| 发表于 2024-3-14 14:50:34 | 显示全部楼层
回复 5# czjt1234

C:\Windows\system32>echo Y  | format O: /v:GSRAMDisk /fs:ntfs /q /u
文件系统的类型是 FAT32。
新的文件系统是 NTFS。
输入驱动器 O: 的当前卷标为此驱动器输入的卷标不正确。

C:\Windows\system32>pause
请按任意键继续. . .


C:\Windows\system32>echo GSRAMDisk  | format O: /v:GSRAMDisk /fs:ntfs /q /u
文件系统的类型是 FAT32。
新的文件系统是 NTFS。
输入驱动器 O: 的当前卷标
警告,非移动磁盘驱动器 O:
上的所有数据将会丢失!
是否继续进行格式化(Y/N)?
警告,非移动磁盘驱动器 O:
上的所有数据将会丢失!
是否继续进行格式化(Y/N)?
C:\Windows\system32>pause
请按任意键继续. . .


还是不行哦。
发表于 2024-3-14 15:33:40 | 显示全部楼层
  1. C:\Windows\system32>echo GSRAMDisk|convert o: /fs:ntfs /x
  2. 文件系统的类型是 FAT32。
  3. 输入驱动器 O: 的当前卷标另一进程正在使用该卷。Chkdsk
  4. 可能会在没有损坏的情况下汇报错误。
  5. GSRAMDISK 卷创建了 2024/3/14 15:02
  6. 卷序列号为 A885-CAC5
  7. Windows 正在校验文件和文件夹...
  8. 已完成文件和文件夹验证。

  9. Windows 已扫描文件系统并且没有发现问题。
  10. 无需采取进一步操作。

  11. 磁盘空间总数 2,088,763,392 字节。
  12. 1 个隐藏文件:         4,096 字节。
  13. 1 个文件:         4,096 字节。
  14. 可用磁盘空间: 2,088,751,104 字节。

  15. 每个分配单元中有         4,096 字节。
  16. 磁盘上共有       509,952 个分配单元。
  17. 磁盘上有       509,949 个可用的分配单元。

  18. 正在确定文件系统转换所需的磁盘空间...
  19. 磁盘总空间:                  2043904 KB
复制代码
我在win10虚拟机测试转换文件系统成功
注意不要有多余的空格

另外format的/v参数可能是用于指定新的卷标的,所以要输入一次卷标,再输入一次Y
这个我用vbs在win10虚拟机测试通过
  1. Dim oWshShell, oWshScriptExec, s

  2. Call RunAsAdmin()
  3. Set oWshShell      = CreateObject("WScript.Shell")
  4. Set oWshScriptExec = oWshShell.Exec("cmd.exe")
  5. With oWshScriptExec.StdIn
  6.     .WriteLine "format o: /fs:NTFS /q /x /V:GSRAMDISK"
  7.     .WriteLine "GSRAMDISK"
  8.     .WriteLine "Y"
  9.     .Close()
  10. End With
  11. s = oWshScriptExec.StdOut.ReadAll()
  12. 'MsgBox s

  13. Sub RunAsAdmin()
  14.     Dim oWshShell, oShell, s, i
  15.     Set oWshShell = CreateObject("WScript.Shell")
  16.     If oWshShell.Run("fltmc.exe", 0, True) = 0 Then Exit Sub
  17.     s = """" & WScript.ScriptFullName & """ "
  18.     For Each i In WScript.Arguments
  19.         If InStr(i, " ") > 0 Then i = """" & i & """"
  20.         s = s & i & " "
  21.     Next
  22.     Set oShell = CreateObject("Shell.Application")
  23.     oShell.ShellExecute "WScript.exe", Left(s, Len(s) - 1), , "runas"
  24.     WScript.Quit()
  25. End Sub
复制代码
 楼主| 发表于 2024-3-14 19:13:02 | 显示全部楼层
我在win10虚拟机测试转换文件系统成功
注意不要有多余的空格

另外format的/v参数可能是用于指定新的卷标 ...
czjt1234 发表于 2024-3-14 15:33



    vbs脚本可以 如果能用bat脚本就好了
发表于 2024-3-14 19:32:30 | 显示全部楼层
试试批处理vbs混编
  1. rem 另存为 ANSI 编码 bat
  2. ' & cls & cscript.exe /nologo /e:vbscript "%~f0" & exit

  3. Dim oWshShell, oWshScriptExec, s

  4. Call RunAsAdmin()
  5. Set oWshShell      = CreateObject("WScript.Shell")
  6. Set oWshScriptExec = oWshShell.Exec("cmd.exe")
  7. With oWshScriptExec.StdIn
  8.     .WriteLine "format o: /fs:NTFS /q /x /V:GSRAMDISK"
  9.     .WriteLine "GSRAMDISK"
  10.     .WriteLine "Y"
  11.     .Close()
  12. End With
  13. s = oWshScriptExec.StdOut.ReadAll()
  14. 'MsgBox s

  15. Sub RunAsAdmin()
  16.     Dim oWshShell, oShell, s, i
  17.     Set oWshShell = CreateObject("WScript.Shell")
  18.     If oWshShell.Run("fltmc.exe", 0, True) = 0 Then Exit Sub
  19.     s = """" & WScript.ScriptFullName & """ "
  20.     For Each i In WScript.Arguments
  21.         If InStr(i, " ") > 0 Then i = """" & i & """"
  22.         s = s & i & " "
  23.     Next
  24.     Set oShell = CreateObject("Shell.Application")
  25.     oShell.ShellExecute "WScript.exe", Left(s, Len(s) - 1), , "runas"
  26.     WScript.Quit()
  27. End Sub
复制代码
发表于 2024-3-14 19:38:44 | 显示全部楼层

  1. (
  2.   echo SELECT VOL GSRAMDisk
  3.   echo FORMAT FS=NTFS LABEL="GSRAMDisk" QUICK
  4. ) | diskpart
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 04:50 , Processed in 0.020633 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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