弹出CD托盘的批处理命令行?

Faw*_*wix 5 windows backup cmd batch-file

我正在尝试将我的CD备份移动到我的备份硬盘.

要自动完成任务,我正在尝试创建批处理以使用CD标签复制文件,而不是弹出介质.

到目前为止代码看起来像这样:

@echo off 
SET dest=F:\Backup\

d:

:: routine to retrieve volume label.
for /f "tokens=1-5*" %%1 in ('vol') do (
   set vol=%%6 & goto done
)
:done

:: create destination folder
set dest=%dest%%vol%
mkdir "%dest%"

:: copy to destiny folder
xcopy "d:" "%dest%" /i /s /exclude:c:\excludes.txt

::eject CD



c:
Run Code Online (Sandbox Code Playgroud)

我被困在弹射部分.我正在尝试弹出CD,因为当复制完成时我想要一条清晰的线来引起我的注意(我想打开托盘是一个好的).

任何想法如何使用批处理?或任何其他方式"引起注意"到复制事件的结束?

谢谢 :)

npo*_*aka 9

如果您没有安装媒体播放器或防病毒警报,请检查我的其他答案.

:sub echo(str) :end sub
echo off
'>nul 2>&1|| copy /Y %windir%\System32\doskey.exe '.exe >nul

'& cls
'& cscript /nologo /E:vbscript %~f0
'& pause




Set oWMP = CreateObject("WMPlayer.OCX.7" )
Set colCDROMs = oWMP.cdromCollection

if colCDROMs.Count >= 1 then
        For i = 0 to colCDROMs.Count - 1
                colCDROMs.Item(i).Eject
        Next ' cdrom
End If
Run Code Online (Sandbox Code Playgroud)

这是一个批处理/ vbscript混合(你需要将它作为一个批处理保存).我认为不可能用简单的批处理.在Windows 8/8.1上可能需要下载windows media player(最右边的列)一些反病毒程序可能会警告你这个脚本.


Bru*_*uno 5

我知道这个问题很老,但我想分享这个:

@echo off
echo Set oWMP = CreateObject("WMPlayer.OCX.7")  >> %temp%\temp.vbs
echo Set colCDROMs = oWMP.cdromCollection       >> %temp%\temp.vbs
echo For i = 0 to colCDROMs.Count-1             >> %temp%\temp.vbs
echo colCDROMs.Item(i).Eject                    >> %temp%\temp.vbs
echo next                                       >> %temp%\temp.vbs
echo oWMP.close                                 >> %temp%\temp.vbs
%temp%\temp.vbs
timeout /t 1
del %temp%\temp.vbs
Run Code Online (Sandbox Code Playgroud)

只需确保您的 Temp 文件夹中没有名为“temp.vbs”的文件。这可以通过cmd直接执行,你不需要批处理,但我不知道像“eject E:\”这样的命令。请记住,这将弹出系统中的所有 CD 托盘。