将多个文件从多个文件夹移动到一个文件夹

3
我正在寻找一个.bat文件,可以查看包含同名子文件夹的多个文件夹,并将它们的内容移动到指定的文件夹中。
文件夹结构:
Main_folder 1. MainTextures_folder 2. Props_folder -- model1_subfolder ------ Textures_subfolder ---------- 图像文件 -- model2_subfolder ------ Textures_subfolder ---------- 图像文件 -- model3_subfolder ------ Textures_subfolder ---------- 图像文件 -- model4_subfolder ------ Textures_subfolder ---------- 图像文件
我需要将所有图像文件从它们的Textures_subfolder移动到MainTextures_folder。
感谢任何帮助。

https://dev59.com/tVfUa4cB1Zd3GeqPM_jX - krish kim
我对这个解决方案(它是一个好的解决方案)的问题在于整个文件夹结构中每个文件都有一个相应的.meta文件。我确实需要移动与图像文件对应的.meta文件,但不需要移动模型文件的.meta文件。因此,如果我将“.meta”添加到搜索中,它会找到我不想移动的文件(即模型的.meta文件)。 - user2493464
2个回答

4
这需要在props文件夹下有model*文件夹,并且每个model*文件夹都有一个textures文件夹。MainTextures文件夹位于Main_folder中。
这未经测试,应将每个textures文件夹中的所有文件移动到MainTextures文件夹中。
@echo off
pushd "Main_folder\Props"
for /f "delims=" %%a in ('dir model* /b /ad') do (
move /-y "%%a\textures\*.*" "..\MainTextures"
)
popd

太棒了,现在你有了 "('dir model* /b /ad')",如果每个模型文件夹都有唯一的名称(model1 = truck_model、model2 = plane_model等),需要编写什么? - user2493464
如果Props下的每个文件夹都是模型文件夹,则完全删除“model*”。 - foxidrive
不用谢。你可以接受这个答案,未来的其他人也会知道它值得一试。 - foxidrive

2
for /r "Props_folder" %%x in (*.jpg *.png *.bmp *.whatever) move "%%~fx" "MainTextures_folder"

这段代码将覆盖所有现有的文件。


这对我不起作用。我复制了代码并将其粘贴到一个文本文档中,然后将其更改为批处理文件。将文件放在主文件夹中并运行它。什么也没发生。 - user2493464

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接