在ECHO语句中,如何在不定义多个输出参数的情况下打印所有列

时间:2018-01-29 14:13:28

标签: batch-file echo

for /f  " tokens=%i%-%j% delims=," %%a in (%input%) DO ( 
(ECHO %%a %%b %%c %%d %%e %%f %%g %%h %%i %%j)>>%output%
)

3 个答案:

答案 0 :(得分:0)

"delims="将强制不使用分隔符,并使用完整字符串制作每一行%%a而不是每个单词,由,分隔。

for /f  "delims=" %%a in (%input%) DO ECHO %%a >>%output%

如果您想摆脱,,只需更换它。

@echo off
setlocal enabledelayedexpansion
for /f  "delims=" %%a in (%input%) DO ( set string=%%a
set string=!string: =,!
ECHO !string! >> %output%
)
endlocal

答案 1 :(得分:0)

根据你的评论,以下内容应该完全符合你的要求:多个空格减少到一个分隔符,一行末尾没有分隔符。

@echo off
setlocal enabledelayedexpansion
(for /f "delims=" %%a in (input.txt) do (
  set "new="
  for %%b in (%%a) do (
    set "new=!new!,%%b"
  )
  echo !new:~1!
))>output.txt

答案 2 :(得分:0)

由于某些解决方案可能会导致?字符出现问题,因此以下内容可能符合您的要求:

@Echo Off

Set "input=input.txt"
Set "output=output.txt"

Set "_="
(For /F "UseBackQ Delims=" %%A In ("%input%"
) Do Set "_="&Call :Sub %%A&Call Echo(%%_:~1%%)>"%output%"
If Not Defined _ Del "%output%"
Exit /B

:Sub
If "%1"=="" GoTo :EOF
Set "_=%_%,%1"
Shift&GoTo :Sub