搜索并替换批处理文件

时间:2008-10-29 20:59:04

标签: command-line batch-file

我正在使用Windows命令编写批处理文件脚本,并希望用“,”更改某些空格的每次出现,最简单的方法是什么?

3 个答案:

答案 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。