如何在以下批处理文件代码中抑制错误流

时间:2017-03-16 02:17:55

标签: file batch-file

我在批处理文件中使用以下代码将所有MP3文件从一组目录(总是在更改)复制到特定位置,然后删除mp3文件。该代码有效,但大多数时候没有找到MP3文件。我试图清理批处理窗口中显示的内容。当没有找到MP3文件时,我总是得到一个未找到的文件"信息。我试图压制找不到的文件。产生错误的行是for / f" delim行(特别是dir部分)。如果我重新复制副本和del行,我仍然会收到错误。我尝试在关闭引用之前的dir语句末尾放置> nul和2> nul,然后放在后面的每个位置。在双引号之前,我仍然得到FNF但没有其他错误,在我得到意外的>之后的每个位置错误。

如何在此声明中禁止显示错误消息?

set dSource=C:\Users\pc\Documents\Recordings\VOX
set dTarget=c:\recordings
set fType=*.mp3
for /f "delims=" %%f in ('dir /a-d /b /s "%dSource%\%fType%"') do (
    copy /V "%%f" "%dTarget%\" 2>nul
    del "%%f" 2> nul
)

谢谢,

Roveer

1 个答案:

答案 0 :(得分:2)

for /f "delims=" %%f in ('dir /a-d /b /s "%dSource%\%fType%" 2^>nul') do (

插入符号^“转义”>,告诉cmd它是dir命令的一部分(它有效),而不是for (它无效的地方)

(同样适用于| - 经常用于管道find/findstr