我有一个text.txt文件,其中填充了未用分隔符分隔的数据。我需要根据文本文件中的列添加分隔符。
目前的数据似乎是
00067800000000000000000000N00006N 00000125463150050000012546315012
00067800000000000000000000N00006N 00000125463150810000012546315098
我需要在文本的特定列添加一个分隔符,例如“,”,所以它看起来像。
000678,0000000,000000,0000000,N,00006,N, ,00000,12546315005,00000,12546,315012
000678,0000000,000000,0000000,N,00006,N, ,00000,12546315081,00000,12546,315098
我想创建一个批处理文件,并在文件中的每一行都需要它的每一列添加分隔符。
这可能吗?
提前致谢!
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
SET "filename1=%sourcedir%\q39666479.txt"
SET "outfile=%destdir%\outfile.txt"
:: set delimiter and read column-sizes from supplied command-line
SET "delimiter=,"
CALL :colsize %*
(
FOR /f "usebackqdelims=" %%a IN ("%filename1%") DO (
SET "line=%%a"
CALL :report
)
)>"%outfile%"
GOTO :EOF
:colsize
SET "magic="
:: offset position
SET /a size=0
:colsizelp
IF DEFINED magic (
SET "magic=%magic%%delimiter%`line:~%size%,%1`"
) ELSE (
SET "magic=`line:~%size%,%1`"
)
SET /a size +=%1
SHIFT
IF "%1" neq "" GOTO colsizelp
SETLOCAL enabledelayedexpansion
SET "magic=!magic:`=%%!"
endlocal&SET "magic=set "line=%magic%""
GOTO :eof
:report
CALL %magic%
ECHO %line%
GOTO :eof
您需要更改sourcedir
,filename1
和destdir
的设置以适应您的具体情况。
我使用了一个名为q39666479.txt
的文件,其中包含我的测试数据。
生成定义为%outfile%
的文件以 thisbatchname 运行6,7,6,7,1,5,1,1,5,11,5,5,6
产生上述结果。每个数字都是列宽。
基本上,将字符串magic
构建为适当的子串命令,以便根据需要组合输出行。对于文件中的每一行,执行magic
命令并echo
结果。