Windows 如何回显以数字结尾的字符串?

Windows 如何回显以数字结尾的字符串?,windows,cmd,echo,io-redirection,Windows,Cmd,Echo,Io Redirection,在Windows命令行中,我尝试将以下字符串写入文件: cloud 9 首先,我尝试echocloud9>file.txt。这只是打印到控制台,而不是文件,可能是由于9>的未定义性质 接下来我尝试echocloud9>file.txt。这将生成一个包含所需文本的文件cloud 9,但在行尾有一个尾随空格 我尝试了一系列其他的变化: echo cloud 91>file.txt生成cloud 91 echo cloud 9 1>file.txt生成带有尾随空格的cloud 9 echo“clou

在Windows命令行中,我尝试将以下字符串写入文件:

cloud 9
首先,我尝试
echocloud9>file.txt
。这只是打印到控制台,而不是文件,可能是由于
9>
的未定义性质

接下来我尝试
echocloud9>file.txt
。这将生成一个包含所需文本的文件
cloud 9
,但在行尾有一个尾随空格

我尝试了一系列其他的变化:

echo cloud 91>file.txt
生成
cloud 91

echo cloud 9 1>file.txt
生成带有尾随空格的
cloud 9

echo“cloud 9”>file.txt
生成带有不需要的引号的
“cloud 9”


有没有办法将
cloud 9
准确地回显到文件中,而不带尾随空格?

I/O重定向不必在命令末尾。试一试

echo>file.txt cloud 9

其他可能的替代办法:

退出
9

echo cloud ^9>file.txt
用括号括住文本:(注意,任何内部的右括号都需要转义)


我首选的方法是将部分放在命令前面:

“file.txt”回声云9
无论如何,您可以在变量中隐藏带有数字的回显文本。尽管考虑到即时变量扩展或百分比扩展(percent-(
%
-)甚至在识别重定向表达式之前就已经发生,所以
设置“CL=cloud 9”
,然后
echo%CL%>“file.txt”
将不起作用。但还有其他一些方法:

  • 使用(通过使用
    cmd/V
    运行命令提示符来启用它):

    设置“CL=cloud 9”
    回声!CL!>“file.txt”
    
    或者在一行中:

    设置“CL=cloud 9”&echo!CL!>“file.txt”
    
    当文本字符串包含
    时,这可能会导致问题和/或
    ^

  • 以后使用,但最初禁用:

    设置“CL=cloud 9”
    cmd/V/C echo!CL!>“file.txt”
    
    或者在一行中:

    设置“CL=cloud 9”&cmd/V/C echo!CL!>“file.txt”
    
    即使使用
    ,这也会起作用和/或
    ^

    如果已从一开始启用延迟扩展,
    cmd/V/C echo!CL需要替换为
    cmd/V/C echo^^!CL^^

  • 用于引入变量扩展的另一延迟层:

    设置“CL=cloud 9”
    调用echo%^CL%>“file.txt”
    
    或者在一行中:

    设置“CL=cloud 9”&调用echo%^CL%>“file.txt”
    
    当文本字符串包含
    ^
    时,这可能会导致问题。实际上,这取决于没有定义变量
    ^CL

  • 使用循环实现元变量的后续扩展:

    对于“云9”中的%I执行@echo%~I>“file.txt”
    
    当文本字符串包含
    *
    时,这可能会导致问题



  • 顺便说一句,您可能想用
    echo替换
    echo文本(Text
    ,因为这是在
    Text
    未知甚至可能为空时回送任意文本的唯一安全方法。

    如果您在之前执行
    echo%CL%>foo
    set CL=…
    操作,它是否有效?也许插入符号也有帮助
    (echo cloud 9)>“file.txt”
    “file.txt”Echo cloud 9是我的建议!在这两个建议中,我倾向于前者,但请记住,您需要对“要Echo的字符串”中的任何右括号进行转义,以防止它过早地关闭块,即
    ^)
    @Marged,很遗憾,您的建议无法起作用,因为
    %
    -扩展甚至在识别重定向操作符之前就发生了;您需要调用echo%^CL%>file.txt
    ,或者
    echo!CL!>file.txt
    (启用时),或者
    调用“%cloud 9”中的%I执行@echo%~I>file.txt
    ,所有这些都是为了获得更高一层的扩展。。。
    echo cloud ^9>file.txt
    
    (echo cloud 9) > file.txt