Batch / CMD如何不显示" No Disk"错误

时间:2015-08-12 02:25:38

标签: windows batch-file cmd

在批处理文件中,我尝试执行以下操作:

copy %0 D:\

但这会给我错误" No Disk"。所以 我试过了:

if exist D: (copy %0 D:\)

但这给了我同样的错误,我该如何解决这个问题?

编辑:这是没有磁盘的,但是如果打开批处理文件并且那里有磁盘,我想要运行复制命令。但如果没有磁盘则不显示错误。

3 个答案:

答案 0 :(得分:0)

检查路径时需要尾随反斜杠 - 但您使用的操作系统也有所不同。

if exist "D:\" copy "%~0" D:\

答案 1 :(得分:0)

将输出重定向到nirwana(如果需要,您仍然可以根据失败或成功执行代码):

copy %0 d: >nul  && (
  echo success.
  goto :CopyOK
) || (
  echo failed.
  goto :NoDisk
)  
...

答案 2 :(得分:0)

windows cmd wmic cdrom get MediaLoaded有输出

MediaLoaded  
FALSE  
[possible blank lines]

当驱动器中没有磁盘,或者有磁盘时,但它没有格式化(几乎任何你不能写入它的东西(值为TRUE表示你可以写入它。)

此批处理文件在第二行上查找为TRUE,然后您可以将命令放在那里。跳过空行需要goto。 对于这个例子,我只是回显了TRUE

@echo off
for /f "skip=1" %%a in ('wmic cdrom get MediaLoaded') do (
    if %%a == TRUE (
        @echo %%a
    )
    goto :NEXT
)
:NEXT