如何读取批处理文件中的驱动器或卷的标签?

时间:2011-12-27 22:28:07

标签: windows batch-file

我正在尝试编写一个批处理文件来将我的dvds翻录到硬盘上。我希望文件名是dvd的卷标,但我无法确定在批处理文件中读取磁盘标签的方法。

有没有办法在批处理文件中检索驱动器的卷标,以便将其用作文件名?

3 个答案:

答案 0 :(得分:4)

更全面。编程为我们的子程序

@echo off & setlocal enableextensions
set target_=D:
::
call :IsDeviceReady %target_% isready_
echo Device %target_% ready: %isready_%
if /i "%isready_%"=="false" (endlocal & goto :EOF)
::
call :GetLabel %target_% label_
echo The label of Volume %target_% is %label_%
endlocal & goto :EOF
::
:IsDeviceReady
setlocal
set ready_=true
dir "%~1" > nul 2>&1
if %errorlevel% NEQ 0 set ready_=false
endlocal & set "%2=%ready_%" & goto :EOF
::
:GetLabel
setlocal
for /f "tokens=5*" %%a in (
  'vol "%~1"^|find "Volume in drive "') do (
    set label_=%%b)
endlocal & set "%2=%label_%" & goto :EOF

最初来自http://www.netikka.net/tsneti/info/tscmd101.htm#label

答案 1 :(得分:2)

试试这个:

for /f "tokens=1-5*" %%1 in ('vol') do (
   set vol=%%6 & goto done
)
:done
echo %vol%

答案 2 :(得分:0)

vol 命令将为您提供MS SHELL中的卷名