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

有偿求助bat脚本把脱机的磁盘变成联机并接收参数分区

  [复制链接]
发表于 2019-10-18 18:00:02 | 显示全部楼层 |阅读模式
这个脚本可以接收参数,然后把一个脱机的磁盘变成联机的状态,然后这个磁盘联机之后可以接收参数,参数有以下几个:1.这是第几个磁盘2.这个磁盘要分几个区3.每个区分多大4.这几个分区的名字。这些参数以字符串的格式传进来,然后用tokens那个分割提取一下不,然后按照这些传进来的参数把这一个盘划分,处理一个盘就可以,不需要循环什么的
参数会传进来,到时候只需要接收就可以。
我的qq:952942434
 楼主| 发表于 2019-10-18 18:01:21 | 显示全部楼层
我这边写了一个简单的,只能格式化为一个盘,不能接收参数,需要的话可以提供给你
发表于 2019-10-18 18:09:48 | 显示全部楼层
回复 2# sunyunyun


    代码发出来吧,我试试看。
 楼主| 发表于 2019-10-18 18:14:57 | 显示全部楼层
回复 3# Batcher


    方便加个qq吗,这边不太好说清楚
发表于 2019-10-18 21:06:30 | 显示全部楼层
回复 4# sunyunyun


这个参数处理的例子你试试吧
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. call :CanShuChuLi "1" "2" "1 3" "E F"
  4. goto :end

  5. :CanShuChuLi
  6. set panfunum=%~1
  7. set PartitionNum=%~2
  8. set PartitionSize=%~3
  9. set PartitionName=%~4

  10. set n=1
  11. for %%i in (%PartitionSize%) do (
  12.    set _PartSize!n!=%%i
  13.    set /a n+=1
  14. )

  15. set n=1
  16. for %%i in (%PartitionName%) do (
  17.    set _PartName!n!=%%i
  18.    set /a n+=1
  19. )

  20. echo 第几个磁盘:
  21. echo %panfunum%
  22. echo 分几个区:
  23. echo %PartitionNum%
  24. echo 分区大小:
  25. set _PartSize
  26. echo 分区名称:
  27. set _PartName
  28. goto :eof

  29. :end
  30. pause
复制代码
 楼主| 发表于 2019-10-18 21:10:29 | 显示全部楼层
回复 5# Batcher


    @echo off
setlocal ENABLEDELAYEDEXPANSION
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
set nowdir=C:\Users\SERVER\Desktop\脚本
if exist %nowdir%\tmp.txt (del %nowdir%\tmp.txt)
diskpart -S %nowdir%\checkdisk.txt>%nowdir%\tmp.txt

set panfunum=0
for /f "tokens=2 delims= " %%i in (%nowdir%\tmp.txt) do (
echo 正在处理新硬盘%%i
echo select disk %%i>>%%i.txt
echo online disk>>%%i.txt
echo attr disk clear readonly>>%%i.txt
echo create partition primary>>%%i.txt
echo format fs=ntfs label="" quick compress noerr>>%%i.txt
if !panfunum! EQU 0 (set pan=P)
if !panfunum! EQU 1 (set pan=Q)
if !panfunum! EQU 2 (set pan=R)
if !panfunum! EQU 3 (set pan=S)
if !panfunum! EQU 4 (set pan=T)
if !panfunum! EQU 5 (set pan=U)
if !panfunum! EQU 6 (set pan=V)
if !panfunum! EQU 7 (set pan=W)
echo assign letter = !pan!>>%%i.txt
diskpart -S %%i.txt
echo 新硬盘已挂到磁盘分区!pan!
set /a panfunum=!panfunum!+1
)
if exist %nowdir%\tmp.txt (del %nowdir%\tmp.txt)


这是我的代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 02:50 , Processed in 0.009142 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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