@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
终于写好了,抱歉,耽搁时间了。
在当前显示的是存放这些图片文件的文件夹状态下,同时按住组合键‘Ctrl键’和‘A键’,进行全选文件。
在选中的文件上方,单击鼠标右键,选择‘重命名’命令。
光标会自动跳到某一个文件的修改文件名状态,编辑这个文件名为‘素材’。
随便点击选中文件区域外的空白处,所有文件即可有规律的修改为‘素材(1)、素材(2)
5.同样,如果是修改不在同一文件夹内的文件,需要先将这些文件调整到同一文件夹内,然后同样的方式操作即可。