Windows批处理文件有哪些不太为人所知,但很重要和有用的特性?

指南:

每个答案一个特征 给出特性的简短描述和示例,而不仅仅是文档链接 将答案限制在本地功能,即不需要额外的软件,如Windows资源包

澄清:这里我们指的是由cmd.exe处理的脚本,这是WinNT变体的默认值。

(请参见:Windows批处理文件:.bat vs .cmd?)


当前回答

将输出重定向到控制台,即使批处理的输出已经通过> con语法重定向到文件。

例子: foo.cmd:

echo a
echo b > con

调用:

foo.cmd > output.txt

这将导致“a”输出到output.txt,而“b”输出到控制台。

其他回答

我真的很喜欢这个Windows XP命令参考,以及在顶部的语法链接;它涵盖了许多已经在其他答案中找到的技巧和技巧。

如块状结构:

if "%VS90COMNTOOLS%"=="" (
  echo: Visual Studio 2008 is not installed
  exit /b
)

您可以将if语句链接起来,以获得类似短路布尔' and'的效果。

if foo if bar baz

命令分隔符:

cls & dir
copy a b && echo Success
copy a b || echo Failure

在第二行,&&之后的命令仅在第一个命令成功时运行。

在第3行,||之后的命令仅在第一个命令失败时运行。

输出一个空行:

echo.