如何用批处理修改文本最后一列数据,比如要把最后一列数据乘个数?
2个回答
展开全部
试试这个。 将每行第20列的数乘以3,输出到新文件。
@echo off
:: By 公子七哥
setlocal enabledelayedexpansion
:: 原文件
set file="E:\x.txt"
:: 新文件
set file1="E:\x_1.txt"
:: 输出的分隔符,默认为一个空格,可修改
set "fu= "
:: ##以下内容请尽量不要改动。##
:main
echo 原文件:%file%
echo 新文件:%file1%
cd.>%file1%
for /f "usebackq delims=" %%a in ( %file% ) do (
call set a1=%%a
call :fj
echo !Text!>>%file1%
)
echo 已完成,按任意键关闭。
pause>nul
goto :eof
:fj
set n=0
for %%b in ( %a1% ) do (
set /a n+=1
set x=%%b
if !n! == 20 set /a x=!x!*3
if !n! == 1 (
set Text=!x!
) else (
set Text=!Text!%fu%!x!
)
)
exit /b
下面这个版本只计算最后一列
@echo off
:: By 公子七哥
setlocal enabledelayedexpansion
:: 原文件
set file="E:\x.txt"
:: 目标文件
set file1="E:\x_1.txt"
:: 输出的分隔符,默认为一个空格,可修改
set "fu= "
:: ##以下内容请尽量不要改动。##
:main
echo 原文件:%file%
echo 新文件:%file1%
cd.>%file1%
for /f "usebackq delims=" %%a in ( %file% ) do (
call set a1=%%a
call :fj
echo !Text!>>%file1%
)
echo 已完成,按任意键关闭。
pause>nul
goto :eof
:fj
set "Text="
set n=0
for %%b in ( %a1% ) do set /a n+=1
set n1=0
for %%b in ( %a1% ) do (
set /a n1+=1
set x=%%b
if !n1!==!n! set /a x=!x!*3
if !n1! == 1 (
set Text=!x!
) else (
set Text=!Text!%fu%!x!
)
)
@echo off
:: By 公子七哥
setlocal enabledelayedexpansion
:: 原文件
set file="E:\x.txt"
:: 新文件
set file1="E:\x_1.txt"
:: 输出的分隔符,默认为一个空格,可修改
set "fu= "
:: ##以下内容请尽量不要改动。##
:main
echo 原文件:%file%
echo 新文件:%file1%
cd.>%file1%
for /f "usebackq delims=" %%a in ( %file% ) do (
call set a1=%%a
call :fj
echo !Text!>>%file1%
)
echo 已完成,按任意键关闭。
pause>nul
goto :eof
:fj
set n=0
for %%b in ( %a1% ) do (
set /a n+=1
set x=%%b
if !n! == 20 set /a x=!x!*3
if !n! == 1 (
set Text=!x!
) else (
set Text=!Text!%fu%!x!
)
)
exit /b
下面这个版本只计算最后一列
@echo off
:: By 公子七哥
setlocal enabledelayedexpansion
:: 原文件
set file="E:\x.txt"
:: 目标文件
set file1="E:\x_1.txt"
:: 输出的分隔符,默认为一个空格,可修改
set "fu= "
:: ##以下内容请尽量不要改动。##
:main
echo 原文件:%file%
echo 新文件:%file1%
cd.>%file1%
for /f "usebackq delims=" %%a in ( %file% ) do (
call set a1=%%a
call :fj
echo !Text!>>%file1%
)
echo 已完成,按任意键关闭。
pause>nul
goto :eof
:fj
set "Text="
set n=0
for %%b in ( %a1% ) do set /a n+=1
set n1=0
for %%b in ( %a1% ) do (
set /a n1+=1
set x=%%b
if !n1!==!n! set /a x=!x!*3
if !n1! == 1 (
set Text=!x!
) else (
set Text=!Text!%fu%!x!
)
)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询