我正在使用Windows命令编写批处理文件脚本,并希望用“,”更改某些空格的每次出现,最简单的方法是什么?
答案 0 :(得分:3)
如果您的用户是文本文件中一行上的单词列表,则以空格分隔,例如:
one two three four
创建批处理文件SpaceToComma.bat,如下所示:
@echo off
setlocal
for /F "tokens=* delims= " %%a in (%1) do @set data=%%a
echo %data: =,%
endlocal
然后运行它,你会得到用逗号分隔的单词。这是你想要的吗?
C:\>SpaceToComma.bat data.txt
one,two,three,four
如果你有一个多行文件,那么就可以这样做:
data.txt中
one two three four
five six seven
SpaceToComma.bat
@echo off
setlocal
for /F "tokens=* delims= " %%a in (%1) do @call :processaline %%a
endlocal
goto :eof
:processaline
setlocal
set data=%*
echo %data: =,%
endlocal
goto:eof
输出
C:\>SpaceToComma.bat data.txt
one,two,three,four
five,six,seven
(在没有子程序的情况下,可能有一种聪明的方法,使用!data!语法进行延迟变量扩展,但我无法使用替换语法。)
如果这不是您想要的,那么请解释一下,我可以尝试提供帮助。
(PS:我很高兴使用批处理文件,人们坚持认为无法完成。)
答案 1 :(得分:1)
您可以从http://unxutils.sourceforge.net/下载sed.exe并运行此命令:
sed -e "s/ /,/" infile.txt >outfile.txt
答案 2 :(得分:0)
这很大程度上取决于你如何获取数据,但是你可能能够使用For-Do构造来完成某些事情。将字段分隔符设置为空格,然后在每个标记之间使用a构建字符串。我可以建议一个更强大的脚本语言吗?你应该在任何相对现代的窗户弓上都有VBScript。