我在批处理文件中使用以下代码将所有MP3文件从一组目录(始终更改)复制到特定位置,然后删除mp3文件。代码有效,但大多数情况下没有找到MP3文件。我正在尝试清理在批处理窗口中显示的内容。当没有找到MP3文件时,我总是收到“找不到文件”消息。我试图压制找不到的文件。产生错误的行是for/f“delims行(特别是dir部分)。如果我rem复制和del行我仍然得到错误。我试着把> 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
AFAICS你不需要用''for/f'与'dir'在这里,只需'for/r %% f in(%dsource%\%ftype%)do ...'应该给出如果存在相同的文件名列表,并且没有错误消息。 –
Dave,使用修改后的代码时,我找不到相同的结果。我改变了我的示例代码(从del到dir的最后一行并重新复制副本),以查看它会产生什么。我的代码产生一个找到的文件列表(只是filename.ext)。 (%dsource%\%ftype%)中的for/r %% f ...代码运行了一段时间,但没有输出。 – Roveer
对不起,我测试了几个变种,但贴了错误的一个。尝试'for/r%dsource%%% f在(%ftype%)做...有%% f的东西...' –