Database 在Windows中从批处理脚本向txt文件添加分隔符

Database 在Windows中从批处理脚本向txt文件添加分隔符,database,csv,batch-file,delimiter,Database,Csv,Batch File,Delimiter,我有一个text.txt文件,其中填充的数据没有用分隔符分隔。我需要根据文本文件中的列添加分隔符 数据当前看起来像 00067800000000000000000000N00006N 00000125463150050000012546315012 00067800000000000000000000N00006N 00000125463150810000012546315098 我需要在文本中的特定列中添加一个分隔符,比如“,”,使其看起来像 000678,0000000,000000,00

我有一个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
我想创建一个批处理文件,在文件中的每一行的每一列添加分隔符

这可能吗

提前谢谢

@ECHO关闭
SETLOCAL
设置“sourcedir=U:\sourcedir”
设置“destdir=U:\destdir”
设置“filename1=%sourcedir%\q3966479.txt”
设置“outfile=%destdir%\outfile.txt”
::从提供的命令行设置分隔符和读取列大小
设置“分隔符=,”
通话:colsize%*
(
对于/f“usebackqdelims=“%%a IN”(“%filename1%”)DO(
设置“行=%%a”
电话:报告
)
)>“%outfile%”
后藤:EOF
:colsize
设置“magic=”
::偏移位置
设置/a大小=0
:colsizelp
如果定义为魔法(
设置“magic=%magic%%分隔符%`行:~%size%,%1”
)否则(
设置“magic=`行:~%size%,%1”
)
设置/a大小+=%1
转移
如果“%1”neq“转到colsizelp
SETLOCAL enabledelayedexpansion
设置“magic=!magic:`=%%!”
endlocal&设置“magic=SET”行=%magic%
后藤:eof
:报告
呼叫%magic%
回音%行%
后藤:eof
您需要更改
sourcedir
filename1
destdir
的设置以适应您的环境

我使用了一个名为
q3966479.txt
的文件,其中包含用于测试的数据

生成定义为%outfile%的文件

以thisbatchname 6,7,6,7,1,5,1,1,5,11,5,5,6的形式运行

以产生上述结果。每个数字只是列宽


基本上,根据需要构建字符串
magic
,将适当的子字符串命令串在一起以组装输出行。对于文件中的每一行,执行
magic
命令和
echo
结果。

欢迎使用堆栈溢出。请坐飞机。此外,打开并阅读至少我可以在这里询问哪些主题?然后你就知道了我们对提问者的期望:向我们展示你自己解决任务的代码,并解释为什么你没有完成任务。很抱歉,堆栈溢出不是免费的代码编写服务。但是,您可以从这里开始:。相关:当我运行此操作时,我得到一个缺少的操作数。cmd中的注释。输出文件中填充了Echo。关闭。如果不提供更多信息,则无法判断。您是否尝试重新键入该文件,还是复制并粘贴?您使用什么软件构建批处理文件?有时记事本会尝试重新格式化文件-尝试使用记事本+或Editplus。将
@echo-off
更改为
@echo-on
将在例程执行时复制例程列表。这在调试中可能很有用,尤其是
缺少操作数的问题。这就是cmd中显示的内容。我复制并粘贴,我使用记事本++打开echo,还用更多信息填充output.txt。我的同事只是帮我意识到我运行批处理文件是错误的。所以它主要起作用。直到它在数据中遇到&为止。这很好地打破了它。是的,它在某些符号上会有问题。批处理不是解决此问题的最佳方法。如果设想处理像
%&
(毫无疑问还有其他)这样的符号,我建议您尝试使用SED。以你们的样品为代表,效果很好。