Board logo

标题: [系统相关] Win10批处理如何自动格式化一个指定分区? [打印本页]

作者: bcetl    时间: 2024-3-13 05:33     标题: Win10批处理如何自动格式化一个指定分区?

  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



请问如何全自动化?自动设置卷标,留空也行。自动确认格式化
作者: semiuel    时间: 2024-3-13 08:22

convert o: /fs:ntfs /x
作者: bcetl    时间: 2024-3-13 19:00

回复 2# semiuel




亲,这个转换代码试过。
运行结果是:
C:\Windows\system32>convert O: /fs:ntfs /x
文件系统的类型是 FAT32。
输入驱动器 O: 的当前卷标
作者: bcetl    时间: 2024-3-13 19:02

能快速格式化,是最好的。因为这个临时盘里,都是临时文件,非重要。
作者: czjt1234    时间: 2024-3-13 19:26

convert 转换为 NTFS 是可以的,因为你一开机就转换,空盘转换很快的

要不这样试试
echo Y|format O: /v:GSRAMDisk /fs:ntfs /q /u
作者: bcetl    时间: 2024-3-14 14:50

回复 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
请按任意键继续. . .


还是不行哦。
作者: czjt1234    时间: 2024-3-14 15:33

  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
复制代码

作者: bcetl    时间: 2024-3-14 19:13

我在win10虚拟机测试转换文件系统成功
注意不要有多余的空格

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



    vbs脚本可以 如果能用bat脚本就好了
作者: czjt1234    时间: 2024-3-14 19:32

试试批处理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
复制代码

作者: newswan    时间: 2024-3-14 19:38

  1. (
  2.   echo SELECT VOL GSRAMDisk
  3.   echo FORMAT FS=NTFS LABEL="GSRAMDisk" QUICK
  4. ) | diskpart
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2