标题: 有偿求助bat脚本把脱机的磁盘变成联机并接收参数分区 [打印本页]
作者: sunyunyun 时间: 2019-10-18 18:00 标题: 有偿求助bat脚本把脱机的磁盘变成联机并接收参数分区
这个脚本可以接收参数,然后把一个脱机的磁盘变成联机的状态,然后这个磁盘联机之后可以接收参数,参数有以下几个:1.这是第几个磁盘2.这个磁盘要分几个区3.每个区分多大4.这几个分区的名字。这些参数以字符串的格式传进来,然后用tokens那个分割提取一下不,然后按照这些传进来的参数把这一个盘划分,处理一个盘就可以,不需要循环什么的
参数会传进来,到时候只需要接收就可以。
我的qq:952942434
作者: sunyunyun 时间: 2019-10-18 18:01
我这边写了一个简单的,只能格式化为一个盘,不能接收参数,需要的话可以提供给你
作者: Batcher 时间: 2019-10-18 18:09
回复 2# sunyunyun
代码发出来吧,我试试看。
作者: sunyunyun 时间: 2019-10-18 18:14
回复 3# Batcher
方便加个qq吗,这边不太好说清楚
作者: Batcher 时间: 2019-10-18 21:06
回复 4# sunyunyun
这个参数处理的例子你试试吧- @echo off
- setlocal enabledelayedexpansion
- call :CanShuChuLi "1" "2" "1 3" "E F"
- goto :end
-
- :CanShuChuLi
- set panfunum=%~1
- set PartitionNum=%~2
- set PartitionSize=%~3
- set PartitionName=%~4
-
- set n=1
- for %%i in (%PartitionSize%) do (
- set _PartSize!n!=%%i
- set /a n+=1
- )
-
- set n=1
- for %%i in (%PartitionName%) do (
- set _PartName!n!=%%i
- set /a n+=1
- )
-
- echo 第几个磁盘:
- echo %panfunum%
- echo 分几个区:
- echo %PartitionNum%
- echo 分区大小:
- set _PartSize
- echo 分区名称:
- set _PartName
- goto :eof
-
- :end
- pause
复制代码
作者: sunyunyun 时间: 2019-10-18 21:10
回复 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)
这是我的代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |