从子目录中提取所有.img文件

时间:2019-10-23 11:28:14

标签: batch-file cmd

我有一个目录,其中包含一些名为* .data的子目录,其中包含一个名为Ratio.img的文件,一个名为Ratio.hdr的文件和一个目录vector_data。

这是我的设置: 目录:

-ABC.data/-Ratio.img
    /-Ratio.hdr
    /-vector_data

-DEF.data/-Ratio.img
    /-Ratio.hdr
    /-vector_data

我希望命令行解决方案从每个子目录中获取Ratio.img,将其重命名为子目录的名称(不带.data),然后将其移至目录本身。

我尝试了一些查找.img图像并将其移动的方法,但是我没有设法将重命名包含到文件名中。

# Unfortunately all those .img file are named Ratio, so they ask me to overwrite, what I clearly do not want to.
FOR /R %G in ("*.img") DO Move "%G" "G:\GRD_TEst\Products"

#I tried Renaming the Ratio.img-files, since I think I could work with them even if they are named blah.data.img
FOR /D %G in ("*.data") DO Rename "G:\GRD_TEst\Products\"%G"\Ratio.img" "G:\GRD_TEst\Products\"%G"\"%G".img"


# I also tried some "nesting" of for loops, but this did not lead to the output I wanted, basically create the path to my Ratio.img-File

for /D %G in (.data) do 
    FOR /D %X in ("Ratio.img") DO echo %G\%X

我希望输出像 目录:

-ABC.img
-ABC.data/Ratio.hdr
    /vector_data
-DEF.img
-DEF.data/Ratio.hdr
    /vector_data

1 个答案:

答案 0 :(得分:0)

我可能已经找到了解决方法(由于我没有制作备份副本:()

,所以我必须复制我的Ratio.img文件。
`for /D %%G in ("*.data") do (
    FOR /D %%I in (Ratio.img) DO Rename G:\GRD_TEst\Products\%%G\%%I %%G.img
    FOR /D %%H in (Ratio.hdr) DO Rename G:\GRD_TEst\Products\%%G\%%H %%G.hdr)`

这没有用,它重命名了文件,但是我不能以这种方式使用它们,因为它们无法导入到ArcMap中。移动将在第二步完成。

编辑:同样,在重命名.hdr之后,我最终也可以将数据导入ArcMap中,为我的最终解决方案,我更新了上面的代码片段。