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

指南:

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

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

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


当前回答

There is also the EDLIN command. While it may be an old bastard tool once used for line-based text editing, the fact that it's controllable from the command line makes it rather useful for batch scripting, mostly because, just like any other case you'd be using EDLIN, it's the only tool available. After all, EDLIN is not a tool you would ordinarily want to use for text editing, unless you are somewhat masochistic. To quote Tim Patterson (the fellow who wrote it): "I was aghast when I heard that IBM was using it and not throwing it out the window."

注意:EDLIN将老式的EOF (1A)标记添加到它编辑的文件中。如果需要删除它们,可能必须使用DEBUG。

其他回答

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

if foo if bar baz

cmd.exe本身的/c参数,告诉它运行然后执行这些命令。

我曾经发现自己经常这样做:

win+r, cmd RETURN, ping google.com RETURN

但现在我只知道

win+r, cmd /c ping google.com返回

快得多。如果您正在使用pstools,并且希望使用psexec在远程机器上执行一些命令行功能,那么这也很有帮助。

EDIT: /k工作方式相同,但保持提示打开。这可能经常会派上用场。

无论如何,这是一个很好的Windows CMD或批处理文件的在线参考。我学到了一些我不知道的东西。

HELP

当使用不同的操作系统版本时,了解本机可用的命令是很重要的。在命令提示符处输入HELP可以显示可用的命令,以及它们的功能的简要描述。

cmd.exe /? 

这将列出用于启动命令提示符的所有命令行参数,以及更改整个系统行为的注册表调整。

IF命令!没有它,我的批处理文件是垃圾!

@echo off
IF exist %windir%\system32\iexplore.exe goto end

echo Hmm... it seems you do not have Internet Explorer.
echo Great! You seem to understand ;)

:end
echo Hmm... You have Internet Explorer.
echo That is bad :)