使用批处理文件(batch file)替换字符串
@echo on 是否输出命令行 若为off 则仅输出命令行中的输出显示
%CD% 可获取当前文件所在的路径,其中CD实为 命令行 命令
delims= 按指定字符查找每行,分隔成对应列的字符串并给每行加行号
tokens=* 按指定值取对应列,* 为取全部字符串
for /f "delims=" %%a in ('findstr /n .* %ofile%') do 循环变量文件中每行的字符串,findstr /n .* 为匹配所有字符,并赋值给变量%%a
for /f "delims=" %%a in ('type %ofile%') do 循环变量文件中每行的字符串,type 命令输出文件内容,并赋值给变量%%a
set "str=!str:as=xx!" 替换字符串,将str中的as替换为xx echo !str:~1! 输出第一列的字符串
> 为创建新文件 >> 向文件中增加内容 echo. 输出新行
下面这种可以替换字符串保留空行,不适合大文件,大文件替换字符串使用powershell比较可靠
%CD% 可获取当前文件所在的路径,其中CD实为 命令行 命令
delims= 按指定字符查找每行,分隔成对应列的字符串并给每行加行号
tokens=* 按指定值取对应列,* 为取全部字符串
for /f "delims=" %%a in ('findstr /n .* %ofile%') do 循环变量文件中每行的字符串,findstr /n .* 为匹配所有字符,并赋值给变量%%a
for /f "delims=" %%a in ('type %ofile%') do 循环变量文件中每行的字符串,type 命令输出文件内容,并赋值给变量%%a
set "str=!str:as=xx!" 替换字符串,将str中的as替换为xx echo !str:~1! 输出第一列的字符串
> 为创建新文件 >> 向文件中增加内容 echo. 输出新行
下面这种可以替换字符串保留空行,不适合大文件,大文件替换字符串使用powershell比较可靠
@echo on
set dir=%CD%
set ofile=%dir%\output.txt
set ofile1=%dir%\output_tmp.txt
echo -- Merge file produced using batch file from %dir% > %ofile%
echo. >> %ofile%
type %dir%\1.txt >> %ofile%
echo. >> %ofile%
echo. >> %ofile%
type %dir%\2.txt >> %ofile%
@echo off&setlocal EnableDelayedExpansion
for /f "delims=" %%a in ('findstr /n .* %ofile%') do (
set "str=%%a"
set "str=!str:as=xx!"
echo !str:~1! >>%ofile1%
)
for /f "delims=" %%b in ('type %ofile1%') do (
set "str=%%b"
echo !str:~1! >>D:\new_A.txt
)
del %ofile1%&start D:\new_A.txt
pause
set dir=%CD%
set ofile=%dir%\output.txt
set ofile1=%dir%\output_tmp.txt
echo -- Merge file produced using batch file from %dir% > %ofile%
echo. >> %ofile%
type %dir%\1.txt >> %ofile%
echo. >> %ofile%
echo. >> %ofile%
type %dir%\2.txt >> %ofile%
@echo off&setlocal EnableDelayedExpansion
for /f "delims=" %%a in ('findstr /n .* %ofile%') do (
set "str=%%a"
set "str=!str:as=xx!"
echo !str:~1! >>%ofile1%
)
for /f "delims=" %%b in ('type %ofile1%') do (
set "str=%%b"
echo !str:~1! >>D:\new_A.txt
)
del %ofile1%&start D:\new_A.txt
pause