求助!把A文件夹的文件替换到B文件夹对应文件位置

例:A文件夹下的第1-5张图片替换到B文件夹的第1-5张图片,B文件夹里已经建好空白图片等待替换了,注意是文件位置。
补充一下问题,另外还有同名的TXT内容需要转移过去,在A文件夹的Placements子文件夹下
例:
A文件夹的第5,22-25位置的图片替换到B文件夹的第1,32-35位置,同时把A文件夹下Placements子文件夹里第5,22-25位置的TXT内容替换到B文件夹下Placements子文件夹第1,32-35位置的TXT,
TXT内容如图:需要相同格式转移过去

@echo off & title 替换指定位置文件 By 依梦琴瑶
cd /d %~dp0
setlocal enabledelayedexpansion

::设置要处理的文件后缀,所有类型请设为*
set Ext=*.png

::设置要被替换的文件目录,可相对,可绝对。
set ProcDir=B

::设置文件源路径,可相对,可绝对。
set StrDir=A


::设置源目标文件位置,每个位置用英文逗号隔开。
::如果有连续的位置,请用“-”减号符连接起始和结束的位置号
set StrTar=5,22-25

::设置被源目标文件替换的文件位置,每个位置用英文逗号隔开。
::如果有连续的位置,请用“-”减号符连接起始和结束的位置号
set ReTar=1,32-35


::以下代码请勿随意更改,以免出错。
echo 正在预算处理过程,请稍候。。。
del /f /q Batch_Processing_*.bat 2>nul

call :GetCompleteNumber StrTar "%StrTar%" NumA
call :GetCompleteNumber ReTar "%ReTar%" NumB

call :GetFileList "%StrDir%" A
call :GetFileList "%ProcDir%" B

set NumB=!NumB!,
for %%a in (!NumA!) do (
    set "StrTarFile=" & set "StrTarName=" & set "StrTxtFile=" & set "StrTxtName="
    set "ReTarFile=" & set "ReTarName=" & set "ReTxtFile=" & set "ReTxtName="
    for /f "tokens=2* delims=|" %%b in ('findstr "^:%%~a|" "%~dp0Batch_Processing_A0.bat"') do (
        set "StrTarFile=%%~b"
        set "StrTarName=%%~nxb"
    )
    for /f "tokens=2* delims=|" %%b in ('findstr "^:%%~a|" "%~dp0Batch_Processing_A1.bat"') do (
        set "StrTxtFile=%%~b"
        set "StrTxtName=%%~nxb"
    )
    if not "!NumB!"=="," (
        call :GetReTarNum "!NumB!" TarNum
        for /f "tokens=2* delims=|" %%c in ('findstr "^:!TarNum!|" "%~dp0Batch_Processing_B0.bat"') do (
            set "ReTarFile=%%~c"
            set "ReTarName=%%~nxc"
        )
        for /f "tokens=2* delims=|" %%c in ('findstr "^:!TarNum!|" "%~dp0Batch_Processing_B1.bat"') do (
            set "ReTxtFile=%%~c"
            set "ReTxtName=%%~nxc"
        )
        if defined StrTarFile (
            if defined ReTarFile (
                (echo copy /y "!StrTarFile!" "!ReTarFile!" ^>nul 2^>nul ^&^& ^(
                echo     echo "!ReTarName!" 被 "!StrTarName!" 替换
                echo ^) ^|^| ^(
                echo     echo 替换 "!ReTarName!" 失败
                echo ^))>>"%~dp0Batch_Processing_OK1.bat"
            )
        )
        if defined StrTxtFile (
            if defined ReTxtFile (
                (echo copy /y "!StrTxtFile!" "!ReTxtFile!" ^>nul 2^>nul ^&^& ^(
                echo     echo "!ReTxtName!" 被 "!StrTxtName!" 替换
                echo ^) ^|^| ^(
                echo     echo 替换 "!ReTxtName!" 失败
                echo ^))>>"%~dp0Batch_Processing_OK2.bat"
            )
        )
        call set NumB=%%NumB:,!TarNum!,=,%%
    ) else (
        echo 您尚未定义被替换文件位置编号。
        goto End
    )
)

echo 预算处理进程结束,即将开始加载处理进程。
echo 请按任意键继续下一步
echo, & pause>nul
call "%~dp0Batch_Processing_OK1.bat"
call "%~dp0Batch_Processing_OK2.bat"
del /f /q "%~dp0Batch_Processing_*.bat"

:End
echo, & echo 请按任意键退出
pause>nul
exit

:GetReTarNum
for %%a in (%~1) do (
    set "%~2=%%~a"
    goto :eof
)
goto :eof

:GetCompleteNumber
if not defined %1 set %1=NoDel
for %%a in (%~2) do (
    echo "%%~a" | find "-" >nul 2>nul && (
        for /f "tokens=1,2 delims=-" %%b in ("%%~a") do (
            for /l %%d in (%%~b,1,%%~c) do (
                set %3=!%3!,%%~d
            )
        )
    ) || (
        set %3=!%3!,%%~a
    )
)
goto :eof

:GetFileList
pushd "%~1"
    set Num=0
    for %%a in (%Ext%) do (
        if /i not "%%~dpnxa"=="%~0" (
            set /a Num+=1
            (echo :!Num!^|"%%~fa")>>"%~dp0Batch_Processing_%~20.bat"
        )
    )

    pushd Placements
        set Num=0
        for %%a in (*.txt) do (
            set /a Num+=1
            (echo :!Num!^|"%%~fa")>>"%~dp0Batch_Processing_%~21.bat"
        )
    popd
popd
goto :eof



终于写好了,抱歉,耽搁时间了。

来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-10-09
在当前显示的是存放这些图片文件的文件夹状态下,同时按住组合键‘Ctrl键’和‘A键’,进行全选文件。
在选中的文件上方,单击鼠标右键,选择‘重命名’命令。

光标会自动跳到某一个文件的修改文件名状态,编辑这个文件名为‘素材’。

随便点击选中文件区域外的空白处,所有文件即可有规律的修改为‘素材(1)、素材(2)

5.同样,如果是修改不在同一文件夹内的文件,需要先将这些文件调整到同一文件夹内,然后同样的方式操作即可。

求助!把A文件夹的文件替换到B文件夹对应文件位置
set ProcDir=B::设置文件源路径,可相对,可绝对。set StrDir=A::设置源目标文件位置,每个位置用英文逗号隔开。::如果有连续的位置,请用“-”减号符连接起始和结束的位置号set StrTar=5,22-25::设置被源目标文件替换的文件位置,每个位置用英文逗号隔开。::如果有连续的位置,请用“-”减号符...

将一个文件夹中的文件移动到另一个文件夹中
1. 打开文件资源管理器:在Windows中,这可以通过点击“开始”按钮,然后在搜索栏中输入“文件资源管理器”来实现。在Mac上,则可以使用Finder。2. 导航到源文件夹:在文件资源管理器中,找到并双击打开文件夹 A。确保可以看到里面所有的文件。3. 选择文件:单击一个文件,然后按住...

如何把文件从一个文件夹下移动到另一个文件夹下?
详情请查看视频回答

怎么把笔记从一个文件夹移动到另一个文件夹
(1).先用鼠标左键单击文件a,注意不要松开鼠标左键,一直按住(此时a文件变成蓝色)。(2).按住鼠标左键的同时移动鼠标指针,让鼠标指针指向文件夹b(此时文件夹b也变成蓝色)。(3).松开鼠标,你就会发现,文件a已经移动到文件夹b中了。同理,如果想把一个文件夹移动到另一个文件夹中也是同样...

如何把一个文件夹的Excel表格移到另外一个文件夹表格里?
首先,打开要移动和要移动到的两个Excel工作簿,如下图所示。请点击输入图片描述 然后右键点击要移动的工作表标签,选择“移动或复制”,如下图所示。请点击输入图片描述 在弹出的对话框中,首先从下拉菜单中选择目的工作簿,如下图所示。请点击输入图片描述 如果移动后,原工作簿还想保留移动的工作表,...

电脑上怎么移动文件怎么移动文件夹
1、首先我们在屏幕上找到【此电脑】,点击进入,找到【磁盘】,然后找到我们想要移动的文件所在的位置文件夹。 ❽ 如何移动文件到另一个文件夹 1.选中文件按Ctrl+x,然后到另一文件夹按ctrl+V。 2.左键文件不放,把文件拉倒另一文件夹。 3.用命令mov c:aa.txt d:,把文件从a文件夹已到b文件夹。 可参考以...

linux系统怎么把一个文件夹里面的文件复制到另外一个文件夹里面,O(∩...
1、处在当前目录复制当前目录下文件到别的目录:cp 文件名称 别的文件目录路径 例如, 在orz文件夹下有两个子文件夹a和b,a中有文件x.c,b中无文件。此时我们在a文件夹中命令如下:cp x.c ..\/b\/ 2、处在当前文件夹下复制另外文件夹下的文件到当前文件夹下:cp 路径\/文件名称 .\/ 例如和...

拖文件的时候,不小心把一位文件夹拖到另一个文件夹下,发现后赶紧点击取 ...
既然拖到B文件夹下,自然文件也在B文件夹下了。找找B文件夹下。如果没有,再用搜索,搜索一下你原A文件夹下的文件名,因为也许因为你慌张之时,位置拖错了,并非你认为的B文件夹。

Win11中把一个文件从一个文件夹移动到另一个文件夹,怎样让该文件自动按...
你这种情况很常见,多为两种情况,一是文件夹内文件过多,尤其是图片或者视频需要预览的文件,二是硬件原因,比如硬盘不健康和电源不行电压不够等等。简单说就是本来是会自动排序的,但是由于上面的原因,影响了文件夹自动排序功能。解决方法如果是文件夹内文件过多,可以新建多个子文件夹,把文件拆分归纳...

linux怎么将一个文件夹链接到另一个文件夹上?
ln -s bbb的文件目录 ccc的文件目录 In的功能是为某一个文件在另外一个位置建立一个同步的链接,命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件 -s 是 symbolic的意思。ln的链接有软链接和硬链接两种。软链接就是ln -s ** **,只会在选定的位置上生成一个文件的镜像,不会占用...

相似回答