
[已解決]批處理計算數值不能被除整求解答磁盤容量均分最后由 yakeyun 于 -7-15 14:52
已知代碼獲取到的值如下:========================================================================下面是第二個代碼,主要是找出新硬盤,如果可用容量和總容量相等,就說明有硬盤沒有分區出來。其已經可以實現自動判斷小于500G硬盤分一個區,大于500G平分3個區的目的了。但是diskpart命令無法獲取磁盤容量后面的小數位,所以均分容量有瑕疵,想完美優化一下代碼。求大佬幫忙看下是否可以把代碼和代碼之間相互調用,自己嘗試加過,技術有限不能實現。我是先讓%%k輸出為data.ini ,然后用:for /f delims= %%m in ('more c:data.ini ^| find %%b') doecho,%%m 運行后m值不顯示========================================================================nclick="copycode($('code0'));">復制代碼
- @echo off
- partassist.exe /list /out:1.txt
- for /f skip=3 delims=| tokens=2,3 %%i in (1.txt) do for /f delims=GB %%k in (%%i) do echo %%k
- pause
nclick="copycode($('code1'));">復制代碼
- :main
- setlocal enabledelayedexpansion
- set flag=0
- for /f skip=1 tokens=2,4-7 %%a in ('echo list disk^|diskpart^|find 磁盤') do (
- if %%b%%c == %%d%%e (
- set flag=1
- set name=%%a
- set name2=%%b
- )
- )
- if !flag!==1 (
- if !name2! GTR 500 (goto bug500)
- if !name2! LSS 500 (goto min500)
- :bug500
- set /a name2=!name2!*1024/3
- set /a name3=!name2!*2
- ::刪除所有分區
- C:Intel10PACMDpartassist.exe /hd:%name% /del:all
- ::初始化磁盤
- C:Intel10PACMDpartassist.exe /init:%name% /gpt
- ::在磁盤的第一塊未分配空間中創建1T的三分之一容量分區
- C:Intel10PACMDpartassist.exe /hd:%name% /cre /pri /size:auto /fs:ntfs /align /label:HDD1 /letter:auto
- C:Intel10PACMDpartassist.exe /hd:%name% /resize:0 /reduce-right:!name3!
- C:Intel10PACMDpartassist.exe /hd:%name% /cre /pri /size:auto /fs:ntfs /label:HDD2 /letter:auto
- C:Intel10PACMDpartassist.exe /hd:%name% /resize:1 /reduce-right:!name2!
- C:Intel10PACMDpartassist.exe /hd:%name% /cre /pri /size:auto /fs:ntfs /label:HDD3 /letter:auto
- msg %username% 自動分區完成!
- goto main
- :min500
- ::刪除所有分區
- C:Intel10PACMDpartassist.exe /hd:%name% /del:all
- ::初始化磁盤
- C:Intel10PACMDpartassist.exe /init:%name% /gpt
- ::將磁盤所有空間分配為一個分區
- C:Intel10PACMDpartassist.exe /hd:%name% /cre /pri /size:auto /fs:ntfs /align /label:HDD /letter:auto
- msg %username% 自動分區完成!
- goto main
- )

