批处理文件,用于根据特定字符串隔离文件,这些字符串发生在文件名中的任何位置

时间:2016-05-31 10:13:13

标签: batch-file

我想移动文件夹c:\ test(所有都是.wav文件),包含字符串' ooc'发生在文件名中的任何位置我写了一个批处理文件:

@echo off
cd C:\test
FOR /R %completepath% %%G IN (*ooc*.wav) DO
(
move /-y "C:\test\*.wav" "C:\ooc\"
)

但是,这不起作用。请提出任何建议。

2 个答案:

答案 0 :(得分:1)

通过迭代所有文件一次移动一个文件:

for /r %completepath% %%F in (*ooc*.wav) do move /-y "%%F" "c:\ooc\"

通过迭代文件夹一次移动整个文件夹:

for /r %completepath% %%F in (.) do if exist *ooc*.wav move /-y "%%~fF\*ooc*.wav" "c:\ooc\"

您可以删除IF并将stderr重定向到NUL以隐藏任何“找不到指定的文件”错误消息,但随后会隐藏所有潜在的错误消息。

for /r %completepath% %%F in (.) do move /-y "%%~fF\*ooc*.wav" "c:\ooc\" 2>nul

答案 1 :(得分:0)

我猜你想要的是这个:

@echo off
cd C:\test
FOR /R %completepath% %%G IN (*ooc*.wav) DO (
    move /-y "%%G" "C:\ooc\"
)