我正在使用 Windows 命令编写一个批处理文件脚本,并且想用“,”更改每次出现的一些空格,最简单的方法是什么?
问问题
3761 次
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 回答