Board logo

标题: [系统相关] (已解决)求助批处理如何更改卷标? [打印本页]

作者: gyue    时间: 2021-11-18 11:51     标题: (已解决)求助批处理如何更改卷标?

本帖最后由 gyue 于 2021-11-19 11:30 编辑

请教各位大神,批处理如何判断卷标是否存在,并且更改吗?(不需要给盘符)
效果是,判断ESP卷标是否存在,如果存在将卷标名更改为SYSTEM。(改名后执行后边命令)
作者: yakeyun    时间: 2021-11-18 21:27

回复 1# gyue

直接挂载为Z盘,然后命令执行。如果没有自然挂载不了,忽略即可。
label Z:SYSTEM
作者: Batcher    时间: 2021-11-18 21:28

回复 1# gyue


试试:
http://bbs.bathome.net/thread-13909-1-1.html
http://bbs.bathome.net/thread-37222-1-1.html
http://bbs.bathome.net/thread-5025-1-1.html
作者: flashercs    时间: 2021-11-18 21:31

本帖最后由 flashercs 于 2021-11-18 21:48 编辑

判断卷标存在
  1. wmic path win32_volume where "Label='ESP'" get Name /value
复制代码
改卷标
  1. @echo off
  2. set Name=
  3. for /f "delims=" %%A in ('wmic path win32_volume where "Label='ESP'" get Name /value^|find "="') do set %%A
  4. if defined Name  Label %Name% System
  5. pause
  6. exit /b
复制代码

作者: yakeyun    时间: 2021-11-18 21:43

回复 4# flashercs


Name=\\?\Volume{51199f3f-a1dc-4459-ac21-2b7a00232400}\
作者: yakeyun    时间: 2021-11-18 21:48

@echo off
FOR /F "tokens=* delims=" %%i in ('echo lis vol^|diskpart^|find "卷"^|find /v "###"') do set "str=%%i" & call :find
cls
if %rm%a==a &goto:hide
goto:hide
:find
set v=%str:~8,1%
set l=%str:~14,1%
if "%l%"==" " goto:show
goto:eof
:show
set rm=%v%_%rm%
cmd /c "echo sel vol %v% & echo assign"|diskpart
goto:eof
:hide
if %rm%a==a goto:eof
FOR /F "tokens=1* delims=_" %%i in ('echo %rm%') do set "v=%%i" & set "rm=%%j" & label %%j:SYSTEM & call :dohide
goto:hide
:dohide
cmd /c "echo sel vol=%v% & echo remove"|diskpart
goto:eof
作者: gyue    时间: 2021-11-19 11:30

回复 3# Batcher


    谢谢,找到思路了
作者: gyue    时间: 2021-11-19 11:31

回复 6# yakeyun


   谢谢 帮忙




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