我在批处理文件中使用以下代码将所有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
答案 0 :(得分:2)
for /f "delims=" %%f in ('dir /a-d /b /s "%dSource%\%fType%" 2^>nul') do (
插入符号^
“转义”>
,告诉cmd
它是dir
命令的一部分(它有效),而不是for
(它无效的地方)
(同样适用于|
- 经常用于管道find/findstr
)