Batch file 使用DOS批处理文件从文本文件中删除回车
在一个文本文件中,我有以下几行:Batch file 使用DOS批处理文件从文本文件中删除回车,batch-file,Batch File,在一个文本文件中,我有以下几行: 2014-10-09 00:00:00.000;1663;2014-10-09 12:38:46.000;A;" ";0;0;E/272 2014-10-09 00:00:00.000;1663;2014-10-09 12:38:46.000;A;" ";0;0;D/275 我需要使用DOS批处理文件来完成此新输出: 2014-10-09 00:00:00.000;1663;20
2014-10-09 00:00:00.000;1663;2014-10-09 12:38:46.000;A;"
";0;0;E/272
2014-10-09 00:00:00.000;1663;2014-10-09 12:38:46.000;A;"
";0;0;D/275
我需要使用DOS批处理文件来完成此新输出:
2014-10-09 00:00:00.000;1663;2014-10-09 12:38:46.000;A;"";0;0;E/272
2014-10-09 00:00:00.000;1663;2014-10-09 12:38:46.000;A;"";0;0;D/275
我尝试过这个解决方案:
for /f "delims=" %%a in (oldfile.txt) do (
echo/|set /p ="%%a%"
)>>newfile.txt
但是输出是错误的,我在txt newfile中没有两行,但只有一行:
2014-10-09 00:00:00.000;1663;2014-10-09 12:38:46.000;A;"";0;0;E/2722014-10-09 00:00:00.000;1663;2014-10-09 12:38:46.000;A;"";0;0;D/275
我错过了什么
这个代码怎么了
先谢谢你
例如,使用as搜索字符串
(?)运行Perl正则表达式替换?
@echo on
setlocal EnableDelayedExpansion
set "INTEXTFILE=oldfile.txt"
if not exist "%INTEXTFILE%" goto EndBatch
set "OUTTEXTFILE=newfile.txt"
if exist "%OUTTEXTFILE%" del "%OUTTEXTFILE%"
set "FirstLine="
set "EndFirstLine=""
set "BeginSecondLine= ";"
for /f "usebackq delims=" %%A in ("%INTEXTFILE%") do (
set "Line=%%A"
if not "!FirstLine!"=="" (
if "!Line:~0,22!"=="!BeginSecondLine!" (
set "FirstLine=!FirstLine!!Line:~20!"
echo !FirstLine!>>"%OUTTEXTFILE%"
set "Line="
) else (
echo !FirstLine!>>"%OUTTEXTFILE%"
)
set "FirstLine="
)
if not "!Line!"=="" (
if "!Line:~-1!"=="!EndFirstLine!" (
set "FirstLine=!Line!"
) else (
echo !Line!>>"%OUTTEXTFILE%"
)
)
)
:EndBatch
endlocal