【问题标题】:How to avoid writing trailing spaces into text file on redirecting ECHO outputs to a file?如何避免在将 ECHO 输出重定向到文件时将尾随空格写入文本文件?
【发布时间】:2015-12-10 19:14:28
【问题描述】:

我有这个代码:

@echo off
color 0a
title FTP
CLS
echo username > FTP.txt
echo password >> FTP.txt
ftp -s:FTP.txt ftp.website.com

但我有一个问题,它在执行时显示身份验证错误,因为在文本文件中的 usernamepassword 上附加了一个空格。换句话说,FTP.txt 的第一行是“username ”而不是“username”。第二行也是“password ”而不是“password”。

如何删除每行末尾的那些空格或避免将它们写入文件?

【问题讨论】:

  • 当然有空格,如果你明确写一个空格。而不是echo username > FTP.txtecho username>FTP.txt。与密码相同。
  • 如果你觉得这很尴尬,你也可以把重定向放在行首,达到同样的效果。 >FTP.txt echo username>>FTP.txt echo password。区别纯粹是外观上的。或者你可以>FTP.txt ( command 1 command 2 )

标签: batch-file cmd


【解决方案1】:

正如上面的 Stephan cmets,usernamepassword 之后的空格被视为文字空格,而不是标记分隔符。删除 > 重定向器之前的空格。

echo username>FTP.txt
echo password>>FTP.txt

如果你觉得这很尴尬,你也可以把重定向放在行首,达到同样的效果。

>FTP.txt echo username
>>FTP.txt echo password

区别纯粹是装饰性的。或者您可以只打开一次FTP.txt进行写入,但在关闭之前使用多个语句写入。这实际上效率更高一些。

>FTP.txt (
    echo username
    echo password
)

(
    echo username
    echo password
) >FTP.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-18
    • 2013-04-21
    • 2014-11-08
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    相关资源
    最近更新 更多