【问题标题】:Dos command to move all files from all subdir to one folderdos命令将所有文件从所有子目录移动到一个文件夹
【发布时间】:2011-11-29 14:14:01
【问题描述】:

我想写 2 个批处理文件。

第一:

将子目录中的所有文件移动到根目录。 例如:

Folder1
|_folder2
|___files.jpg
|_folder3
|___files.jpg

我想将文件夹1文件夹中的所有文件移动到文件夹1


第二个批处理文件是 例如:

Folder1
|_folder2
|___JPEG
|_____files.jpg
|_folder3
|___JPEG
|_____files.jpg

需要删除子目录中的所有文件,然后将文件从 JPEG 移动到上一级 - 例如文件夹 2 - 并将其重命名为 thumbnail.png 例如。

我试过了

for /r %%f in (*) do ren "%%f" thumbnail.jpg 

重命名所有文件但不知道如何删除包含 jpeg 文件夹的同一文件夹中的所有文件以及如何将文件上移一级。

Thankx :D 希望它不是很复杂

【问题讨论】:

    标签: batch-file dos


    【解决方案1】:

    据我了解,这是您第一个问题的解决方案:

    @echo off
    setlocal
    set root=Folder1
    for /f "delims=" %%f in ('dir /ad /b /s %root%') do @move "%%f\*.*" %root%
    endlocal
    

    正如我所写的那样,任何级别的所有文件都会被移动。如果您只想移动第一级子目录文件,请去掉 /s。

    对于第二个问题,尝试类似的方法,但使用

    dir /a-d /b
    

    列出所有不是子目录的条目(即跳过JPEG)。这将允许您构造执行删除操作的 for 语句,然后执行另一个执行移动和重命名的语句。

    您可能希望查看调用子例程来执行移动、重命名、删除。然后,您可以操纵文件名来更改名称。我对你在第二种情况下想要做什么感到有点困惑。如果您不确定提取文件名和其他字符串操作,还可以查看 setcall 命令的帮助。

    如果您添加 cmets 或编辑您的问题以准确显示您想要的内容,那么我很乐意提供进一步的帮助。

    【讨论】:

      猜你喜欢
      • 2013-07-02
      • 1970-01-01
      • 2013-08-19
      • 2011-06-12
      • 2011-04-24
      • 2015-04-26
      • 1970-01-01
      • 2018-12-26
      • 2011-09-09
      相关资源
      最近更新 更多