2

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

4

3 回答 3

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

如果您有一个多行文件,则可以这样做:

数据.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:我喜欢在人们坚持无法完成的情况下使用批处理文件。)

于 2008-10-29T23:35:03.603 回答
1

您可以从http://unxutils.sourceforge.net/下载 sed.exe并运行以下命令:

sed -e "s/ /,/" infile.txt >outfile.txt
于 2008-10-29T21:28:20.847 回答
0

好吧,这在很大程度上取决于您如何获取数据,但是您可以使用 For-Do 构造来解决问题。将字段分隔符设为空格,然后在每个标记之间用 , 将字符串重新构建到 do 中。我可以建议一种更强大的脚本语言吗?您应该在几乎任何相对现代的 Windows 弓上安装 VBScript。

于 2008-10-29T21:02:47.077 回答