bat 用变量替换文本中字符结果替换为空 10
setFolderName=%cd%rem对文件夹内所有DMO列入LIST.TMP文件中,后续依次进行信息替换for/f"delims=\"%%ain('dir/b/a-...
set FolderName=%cd%
rem 对文件夹内所有DMO列入LIST.TMP文件中,后续依次进行信息替换
for /f "delims=\" %%a in ('dir /b /a-d /o-d "%FolderName%\*.dmo"') do (
echo %%a>>list.tmp
)
rem 按照list.tmp文件中的顺序对DMO进行读取
rem ##1
for /f "delims=" %%q in (list.tmp) do (
echo %%q
echo %%~fq
SET LJ=%%~fq
rem 将题头文件另存为TMP
type T.T > tmp.tmp
rem 将源文件题头之后的信息写入到临时文件txt中
for /f "skip=14 delims= tokens=*" %%b in (!LJ!) do (
echo %%b>>txt
)
rem 将上述TXT文件追加的新的题头文件之后
type txt>>tmp.tmp
rem 在原dmo文件中查找三级目录和钢号,并赋值给变量后续使用
for /f " skip=1 tokens=2 delims='" %%i in (!LJ!) do (
echo %%i >e.e
findstr "AB" e.e >nul && (set ML1=%%i)||(
findstr "UB" e.e >nul && (set ML1=%%i)||(
findstr "ST" e.e >nul && (set ML1=%%i)||(
set GH=%%i
)
)
)
)
REM echo !ML1! !GH!
rem 找出原dmo文件中的dmo生成时间。
For /f "tokens=1* delims=:" %%i in ('Type !LJ!^|Findstr /n ".*"') do (
If "%%i"=="6" (
set NUM=%%j
set DT=!NUM:~7,11!
)
If "%%i"=="7" (
set NUM2=%%j
set TM=!NUM2:~7,16!
)
)
REM echo TM=!TM!
REM echo DT=!DT!
rem 进行信息替换。
setlocal enabledelayedexpansion
for /f "eol=* tokens=*" %%k in (tmp.tmp) do (
set v=%%k
set "v=!v:change-t=%TM%!"
set "v=!v:change-d=%DT%!"
Set "v=!v:change-gh=%GH%!"
Set "v=!v:change-ml=%ML1%!"
echo !v!>>$
)
move $ tmp.tmp
替换完以后change-t处都没了。。。 展开
rem 对文件夹内所有DMO列入LIST.TMP文件中,后续依次进行信息替换
for /f "delims=\" %%a in ('dir /b /a-d /o-d "%FolderName%\*.dmo"') do (
echo %%a>>list.tmp
)
rem 按照list.tmp文件中的顺序对DMO进行读取
rem ##1
for /f "delims=" %%q in (list.tmp) do (
echo %%q
echo %%~fq
SET LJ=%%~fq
rem 将题头文件另存为TMP
type T.T > tmp.tmp
rem 将源文件题头之后的信息写入到临时文件txt中
for /f "skip=14 delims= tokens=*" %%b in (!LJ!) do (
echo %%b>>txt
)
rem 将上述TXT文件追加的新的题头文件之后
type txt>>tmp.tmp
rem 在原dmo文件中查找三级目录和钢号,并赋值给变量后续使用
for /f " skip=1 tokens=2 delims='" %%i in (!LJ!) do (
echo %%i >e.e
findstr "AB" e.e >nul && (set ML1=%%i)||(
findstr "UB" e.e >nul && (set ML1=%%i)||(
findstr "ST" e.e >nul && (set ML1=%%i)||(
set GH=%%i
)
)
)
)
REM echo !ML1! !GH!
rem 找出原dmo文件中的dmo生成时间。
For /f "tokens=1* delims=:" %%i in ('Type !LJ!^|Findstr /n ".*"') do (
If "%%i"=="6" (
set NUM=%%j
set DT=!NUM:~7,11!
)
If "%%i"=="7" (
set NUM2=%%j
set TM=!NUM2:~7,16!
)
)
REM echo TM=!TM!
REM echo DT=!DT!
rem 进行信息替换。
setlocal enabledelayedexpansion
for /f "eol=* tokens=*" %%k in (tmp.tmp) do (
set v=%%k
set "v=!v:change-t=%TM%!"
set "v=!v:change-d=%DT%!"
Set "v=!v:change-gh=%GH%!"
Set "v=!v:change-ml=%ML1%!"
echo !v!>>$
)
move $ tmp.tmp
替换完以后change-t处都没了。。。 展开
1个回答
展开全部
@ECHO OFFSET "VAR=ab,dc,cc,ef,gg,AQ,gg"SET "VAR=%VAR:,= %"ECHO %VAR%SET "MAT=gg"ECHO %MAT%call SET "VAR=%%VAR:%MAT%= %%"ECHO %VAR%
call命令会对其参数进行扩展,然后再执行,gg会替换成一个空格
也可以启用变量延迟来实现@echo off&setlocal enabledelayedexpansion.........set "var=!var:%mat%=!
call命令会对其参数进行扩展,然后再执行,gg会替换成一个空格
也可以启用变量延迟来实现@echo off&setlocal enabledelayedexpansion.........set "var=!var:%mat%=!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询