我有一个程序可以像这样创建一个文件myself.txt
2020/05/04 19:11:43 10113 35.11154 6.69945 2.081 254
2020/05/04 19:12:04 10113 35.11159 6.69926 1.294 294
2020/05/04 19:12:10 10100 35.08132 6.67381 1.997 346
是否可以批量删除每行的一部分以得到此结果?
2020/05/04 19:11:43 10113 35.11154
2020/05/04 19:12:04 10113 35.11159
2020/05/04 19:12:10 10100 35.08132
@echo off
( for /f "tokens=1-4" %%A in (myself.txt) do (
echo %%A %%B %%C %%D
)
) > new.txt
您的文件有7个令牌,但您只需要第1个4个令牌。 for /f
循环以及选项tokens=1-4
将使您获得1st 4个令牌。
此方法保留直到给定令牌的相同数据,包括行中的现有相同空格。
@echo off
setlocal EnableDelayedExpansion
(for /F "delims=*" %%a in (input.txt) do (
call :PreserveUpToToken#4 %%a
)) > output.txt
goto :EOF
:PreserveUpToToken#4
set "line=%*"
set "line=!line:%4=%4& rem!"
echo %line%
exit /B