Batch file 通过批处理命令从输出到文件的文本中消除空间

Batch file 通过批处理命令从输出到文件的文本中消除空间,batch-file,Batch File,我正在尝试输出 for /l %x in (1, 1, 10) do echo|set /p= SampleOut,>log.txt 一个文本文件,但用上面的命令我只得到 SampleOut,SampleOut,SampleOut... 如何删除输出到该文本文件的空间 SampleOut, SampleOut, SampleOut... 在set“varname=varvalue”中始终使用“双引号,以避免varname和varvalue中出现不需要的前导和/或尾随空格问题。例如,

我正在尝试输出

for /l %x in  (1, 1, 10) do echo|set /p= SampleOut,>log.txt
一个文本文件,但用上面的命令我只得到

SampleOut,SampleOut,SampleOut...
如何删除输出到该文本文件的空间

SampleOut, SampleOut, SampleOut...
set“varname=varvalue”
中始终使用
双引号,以避免
varname
varvalue
中出现不需要的前导和/或尾随空格问题。例如,下一步
set
命令会导致不同的结果:

for /l %x in (1, 1, 10) do echo|set /p "=SampleOut,">>log.txt
始终在
设置“varname=varvalue”
中使用
双引号,以避免
varname
varvalue
中出现不需要的前导和/或尾随空格问题。例如,next
set
命令会导致不同的结果:

for /l %x in (1, 1, 10) do echo|set /p "=SampleOut,">>log.txt
(对于(1,1,10)中的/l%x,do@set/p“=SampleOut,”)>log.txt
您的代码有三个更改:

  • set
    命令现在被引用,以避免出现不需要的空格问题

  • 完整的
    for
    命令被重定向到日志文件。这样,输出文件只打开一次,写入所有数据,然后关闭文件。在您的代码中,每次迭代都会执行open/write/close

  • echo | set
    已被删除。管道的问题在于它是在进程之间创建的,因此管道的两侧都需要一个单独的
    cmd
    实例来执行内部命令,并且每次迭代都需要创建两个进程

执行一个
set/p
,其输入流从
nul
设备读取,其结果与管道相同,在没有结束回车和换行的情况下回显提示值

在发布的代码中,我已将完整
的输入流重定向到
,以避免在每次迭代中都要这样做。

(对于(1,1,10)中的/l%x,do@set/p“=SampleOut,”)>log.txt
您的代码有三个更改:

  • set
    命令现在被引用,以避免出现不需要的空格问题

  • 完整的
    for
    命令被重定向到日志文件。这样,输出文件只打开一次,写入所有数据,然后关闭文件。在您的代码中,每次迭代都会执行open/write/close

  • echo | set
    已被删除。管道的问题在于它是在进程之间创建的,因此管道的两侧都需要一个单独的
    cmd
    实例来执行内部命令,并且每次迭代都需要创建两个进程

执行一个
set/p
,其输入流从
nul
设备读取,其结果与管道相同,在没有结束回车和换行的情况下回显提示值

在发布的代码中,我将完整
的输入流重定向为
,以避免在每次迭代中都这样做