【问题标题】:Copy Files from multiple subdirectories to root directory and keep duplicates将文件从多个子目录复制到根目录并保留重复项
【发布时间】:2013-09-26 22:32:16
【问题描述】:

所以我有一个目录和子目录列表,其中包含图像。然后我需要以相同格式获取所有这些文件的名称,并且我需要为来自不同角度(即背面)的副本或图像编辑它们。可以说他们都在

C:\Users\username\Desktop\a........

例如我有一张图片在:

C:\Users\username\Desktop\a\123\123.jpg
C:\Users\username\Desktop\a\123\back\123.jpg

我希望它们都在 C:\Users\username\Desktop\a\ 但我想保留背面和正面图像。我发现了几十个脚本,它们会将这些文件移动或“展平”到一个文件夹中,但它总是要求覆盖图像。有没有办法让它保留第二个文件并像普通复制功能一样添加 123 (1).jpg ?或者甚至可能在文件名中插入“back”以进行重复?它也不仅仅止于 \back 我还有 \options 文件夹。

那么我可以使用部分路径名来命名文件吗?因此,如果它有 \back ,我可以将它添加到文件名字符串中吗?与 \options 一样吗?

所以对于 C:\Users\username\Desktop\a\123\back\123.jpg,我想要:

C:\Users\username\Desktop\a\123.123.jpg
C:\Users\username\Desktop\a\123.back.123.jpg
C:\Users\username\Desktop\a\123.options.image1.jpg
C:\Users\username\Desktop\a\123.options.image2.jpg

我更喜欢批处理脚本来执行此操作,但老实说,我将使用 PHP、JS、Ruby 以及任何我不必编译的东西。 :) 非常感谢提供的任何帮助。

【问题讨论】:

    标签: php windows batch-file batch-processing directory


    【解决方案1】:

    C:\Users\username\Desktop\a 文件夹中启动它,它会在运行它之前写入renfile.bat 供您查看,如果它符合您的需要 - 重命名包含文件夹名称的所有文件。

    @echo off
    echo.@echo off> renfile.bat
    for /f "delims=" %%a in ('dir /b /s /a-d ') do call :next "%%a"
    echo renfile.bat created
    pause
    goto :eof
    :next
    echo "%~1"
    set "var=%~1"
    call set "var=%%var:%cd%=%%"
    set "var=%var:\=.%"
    >>renfile.bat echo ren "%~1" "%var:~1%"
    

    您可以按照此操作将所有文件移动到一个文件夹中。

    @echo off
    for /r "C:\Users\username\Desktop\a" %%a in (*) do move "%%a" "C:\Users\username\Desktop\a"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-02
      • 2013-09-26
      • 2012-03-04
      • 2017-11-11
      • 2018-03-05
      • 1970-01-01
      • 2019-12-08
      • 2017-08-14
      相关资源
      最近更新 更多