求助!把A文件夹的文件替换到B文件夹对应文件位置
例:A文件夹下的第1-5张图片替换到B文件夹的第1-5张图片,B文件夹里已经建好空白图片等待替换了,注意是文件位置。补充一下问题,另外还有同名的TXT内容需要转移过去,在...
例: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内容如图:需要相同格式转移过去 展开
补充一下问题,另外还有同名的TXT内容需要转移过去,在A文件夹的Placements子文件夹下
例:
A文件夹的第5,22-25位置的图片替换到B文件夹的第1,32-35位置,同时把A文件夹下Placements子文件夹里第5,22-25位置的TXT内容替换到B文件夹下Placements子文件夹第1,32-35位置的TXT,
TXT内容如图:需要相同格式转移过去 展开
2个回答
展开全部
@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
终于写好了,抱歉,耽搁时间了。
来自:求助得到的回答
2017-10-09 · 知道合伙人互联网行家
关注
展开全部
在当前显示的是存放这些图片文件的文件夹状态下,同时按住组合键‘Ctrl键’和‘A键’,进行全选文件。
在选中的文件上方,单击鼠标右键,选择‘重命名’命令。
光标会自动跳到某一个文件的修改文件名状态,编辑这个文件名为‘素材’。
随便点击选中文件区域外的空白处,所有文件即可有规律的修改为‘素材(1)、素材(2)
5.同样,如果是修改不在同一文件夹内的文件,需要先将这些文件调整到同一文件夹内,然后同样的方式操作即可。
在选中的文件上方,单击鼠标右键,选择‘重命名’命令。
光标会自动跳到某一个文件的修改文件名状态,编辑这个文件名为‘素材’。
随便点击选中文件区域外的空白处,所有文件即可有规律的修改为‘素材(1)、素材(2)
5.同样,如果是修改不在同一文件夹内的文件,需要先将这些文件调整到同一文件夹内,然后同样的方式操作即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询