Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 将基于扩展名的文件移动到子文件夹中_Batch File_Move_Directory - Fatal编程技术网

Batch file 将基于扩展名的文件移动到子文件夹中

Batch file 将基于扩展名的文件移动到子文件夹中,batch-file,move,directory,Batch File,Move,Directory,我正在寻找一个for循环,它将进入子目录,并将扩展名为mp4和flv的文件移动到一个文件夹callmedia中 Folder structure is as follows: Folder 1 (Parent) (Where bat file would go) Folder 1 Sub (First Sub-folder) Media (Folder) File_Name.Mp4 File_Name.flv

我正在寻找一个for循环,它将进入子目录,并将扩展名为mp4和flv的文件移动到一个文件夹callmedia中

  Folder structure is as follows: 
  Folder 1 (Parent) (Where bat file would go)
    Folder 1 Sub (First Sub-folder)
      Media (Folder)            
      File_Name.Mp4
      File_Name.flv
    Folder 2 Sub (Second Sub-folder)
      Media (Folder)            
      File_Name.Mp4
      File_Name.flv
    Folder 3 Sub (Third Sub-folder)
      Media (Folder)            
      File_Name.Mp4
      File_Name.flv
      And so on..... I have about 1100 sub-folders in Folder 1 (parent folder 

谢谢你看这个

如有必要,更改开始文件夹
文件夹1(父文件夹)
,然后尝试:

@echo off &setlocal
for /r "Folder 1 (Parent)" %%i in (*.mp4 *.flv) do (
    echo("%%~pi"|findstr /ri ".\\Media\\.$" >nul|| echo move "%%~fi" "%%~dpiMedia\%%~nxi"
)

如有必要,更改开始文件夹
文件夹1(父文件夹)
,然后尝试:

@echo off &setlocal
for /r "Folder 1 (Parent)" %%i in (*.mp4 *.flv) do (
    echo("%%~pi"|findstr /ri ".\\Media\\.$" >nul|| echo move "%%~fi" "%%~dpiMedia\%%~nxi"
)

这是为了处理父文件夹中的所有第一级文件夹,并将mp4和flv文件移动到第一级文件夹中名为“介质”的文件夹中

这是未经测试的。在一些示例文件夹上测试它

@echo off
for /f "delims=" %%a in (' dir /ad /b ') do (
pushd "%%a"
md Media 2>nul
for %%z in (mp4 flv) do move *.%%z Media 
popd
)

这是为了处理父文件夹中的所有第一级文件夹,并将mp4和flv文件移动到第一级文件夹中名为“介质”的文件夹中

这是未经测试的。在一些示例文件夹上测试它

@echo off
for /f "delims=" %%a in (' dir /ad /b ') do (
pushd "%%a"
md Media 2>nul
for %%z in (mp4 flv) do move *.%%z Media 
popd
)

最好用%%~pi来表示&个字符。我意识到%%变量中不需要用到它。这只是习惯使然。:)
%%a
获得某种延迟扩展:)您最好在&个字符的情况下引用%%~pi。我意识到%%变量中不需要它。这只是习惯使然。:)<代码>%%a获取延迟扩展类型:)