我有以下的文件和文件夹结构(使用真实姓名):如何将特定文件从多个子文件夹移动到其各自的父文件夹? (Windows批处理)
Carabidae/Pterostichinae/FolderNameXXX/dor/StackXXX/files.tif
我的问题是,我需要一个特定的文件,PM *,从StackXXX文件夹到他们。各自/ dor父文件夹。 StackXXX文件夹然后可以被删除。
有数百个FolderName。理想情况下,我想要一个批处理文件,我可以从Carabidae文件夹运行。
这需要是一个批处理文件,因为会不断增加新的FolderNames。
很多搜索后,我发现了一个半工作解决方案从this StackOverflow answer:
for /f "delims==" %%i in ('dir /a:d /b') do for /f "delims==" %%f in ('dir %%i /a:d /b') do (move "%%i\%%f\PM*.*" "%%i"&&rd "%%i\%%f" /s /q)
它移动的文件,并删除该文件夹,就像我想要的。但问题是,它只能在从FolderName文件夹运行时起作用,这会影响脚本的节省时间的目的。我不知道如何修改它以递归到子文件夹中,以便我可以从顶层文件夹运行它。
非常感谢您的帮助!
'for/r'可以帮助你... – SteveFest
我也这么认为,但它不适用于这行代码。我试着将'for/f'和每一个分开替换,并没有在任何时候工作...... – trilobutt
你知道'for/r'的工作方式吗?请检查https://ss64.com/nt/for_r.html以获取更多信息和使用方法 – SteveFest