回声[特殊字符]之间的区别

2 batch-file special-characters

当编写批处理文件,我发现有些人采用Echo.,Echo/,Echo(等...这些回波一个空行,所以就是它们之间的区别Echo[Special Character]

jeb*_*jeb 6

您可以使用许多不同的字符echo.其中一个.[]+\:/,;=(.

但是对于一个好的选择有多种要求.

  1. 它应该创建一个空行(不是ECHO iS OFF)

    1. 如果与(延迟)变量一起使用,它应该能够输出任何内容
    2. 当前目录中存在特殊名称文件时,它不应该失败

第一个点适用于所有字符(从列表中).
第二点因\:.内容而失败\..\..\..\windows\system32\calc.exe

@echo off
setlocal EnableDelayedExpansion
set var=\..\..\..\windows\system32\calc.exe
echo.!var!
Run Code Online (Sandbox Code Playgroud)

,;=失败/?/失败?

@echo off
setlocal EnableDelayedExpansion
set var=/?
echo=!var!
Run Code Online (Sandbox Code Playgroud)

第三点失败了 .[]+

echo echo HELLO FROM %~f0 > echo[.bat
echo[ This fails
Run Code Online (Sandbox Code Playgroud)

唯一有效的是 echo(

  • @SteveFest您确定您的批处理文件是ANSI编码的吗?该文件中是否有其他命令? (2认同)
  • @SteveFest,`echo(`确实有效,除非你在带括号的代码块中的`:Label`之后立即使用它,这实际上是由标签处理引起的... (2认同)